[C언어] while문 사용법 & 예제 총정리

 반복문의 종류 

반복문의 종류로는 for문, while문 do-while문이 있습니다. 어떤 상황이냐에 따라 반복문의 문법을 결정하여 코딩을 하게 되는데요. for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느 쪽을 선택해도 상관은 없습니다만 for문은 반복횟수를 명확히 알고 있을 때 주로 사용하고 while문은 조건에 따라 반복 횟수를 결정해야 할 때 주로 사용하게 되는 것 같습니다. while문과 do-while문의 차이점은 조건을 먼저 검사하느냐 나중에 검사하느냐만 다를 뿐 기본적인 로직은 같습니다.

 

 while문 

while문은 조건식이 true일 경우에 계속해서 반복하는 문법입니다. 조건식에는 비교 또는 논리 연산식이 줄로 오는데 조건식이 false가 되면 반복을 멈추고 while문을 종료합니다.

while문 순서도

 

실행 순서

1. 조건식을 평가합니다. 평가 결과가 true이면 실행문을 실행합니다. 

2, 실행문이 모두 실행되면 다시 조건식으로 되돌아가서 다시 검사합니다. 

3. 만약 조건식이 true라면 1,2번 순서를 다시 반복하고 아니면 while문을 종료합니다. 

 

while문 문법

//문법
while(조건식){
    실행문;
}

//사용법
int i=1;
while(i<10){
    printf("%d\n",i);
    i++;
}

while문은 조건식이 true라면 실행문을 실행시킵니다. 블록 안에 증감문은 넣어주어도 되고 안 넣어주어도 되는데 증감식을 넣어주지 않게 되면 (while문을 빠져나오는 구문이 없다면) 무한루프에 빠지게 됩니다.

 

구구단 만들기

#include <stdio.h>
int main(){
	int i=1;
	
	while(i<10){
		int j=1;
		while(j<10){
			printf("%d * %d = %d\n",i,j,i*j);
			j++;	
		}
		i++;
		printf("\n");
	}
}

구구단

 

 반복문 생략과 탈출(break, continue, return) 

while문의 가장 큰 장점은 무한루프를 만들기 쉽다는 것입니다. 프로그램을 자다 보면 일단 무한루프를 만들어놓고 어떤 특정 입력이나 조건이 들어왔을 때 무한루프를 빠져나오게 하는 방식으로 프로그램을 짤 때가 많은데요. 이럴 경우 for문보다 while문이 유용하게 쓰입니다. 

 

break문

break문은 반복문을 실행중지할 때 사용됩니다. 만약 반복문이 중첩되어 있을 경우 break문은 가장 가까운 반복문만 종료시킵니다. 그러므로 이중으로 쌓여있는 반복문을 모두 중지시키려면 가장 바깥쪽에 있는 반복문에 라벨을 붙이고 brteak 라벨이름; 이렇게 사용하셔야 합니다.

#include
int main(){
	while(1){
		printf("while문 실행\n");
		break;
		printf("bareak문 뒷문장은 실행되지 않습니다.\n");
	}
	printf("프로그램을 종료합니다.");
}

break문

break문을 실행시키기 전인 while문 실행이라는 문구는 찍히고 break문이 실행되어 while문을 탈출한 뒤 프로그램을 종료합니다 라는 문구를 찍은 모습입니다.

 

continue문

continue문은 반복문을 종료하지 않고 계속 반복을 수행합니다. continue을 사용했을 경우 continue밑에 있는 코드는 생략하고 바로 다음 반복문으로 갑니다.

#include
int main(){
	int i = 0;
	while(i<10){
		i++;
		printf("while문 실행\n");
		continue;
		printf("continue문 뒷문장은 실행되지 않습니다.\n");
	}
	printf("프로그램을 종료합니다.");
}

continue문

continue문을 실행시키기 전인 while문 실행이라는 문구는 찍히고 continue문이 실행되어 다음 while문으로 이동하여 같은 방식으로 10번을 반복한 뒤 while문의 조건문이 false가 되어 while문을 빠져나온 뒤 "프로그램을 종료합니다." 라는 문구를 찍은 모습입니다.

 

return문

return문은 속해있는 함수나 프로그램을 즉시 종료시킵니다.

#include
int main(){
	while(1){
		printf("while문 실행\n");
		return 0;
	}
	printf("return문은 프로그램을 종료합니다.라는 문구가 찍히기 전에 프로그램이 종료됩니다.");
}

return문

return문을 실행시키기 전인 while문 실행이라는 문구는 찍히고 return문이 실행되어 즉시 프로그램이 종료된 모습입니다.

댓글

Designed by JB FACTORY