프로그래밍

c언어/c++ while문

업글 2020. 12. 17. 23:53

안녕하세요 업글입니다. 이번 포스팅에서는 반복문중 하나인 while문에 대해서 설명 드리도록 하겠습니다.

 

while문에 대한 설명

c언어 및 c++에서 반복문은 while문, do while문, for문이 있습니다. 이 반복문들 중에서 while문에 대해서 설명드리겠습니다.

 

while문은 조건이 참인 경우 해당하는 코드를 수행하고 조건이 거짓일 때까지 코드를 반복적으로 수행하게 됩니다.

while문 동작

위의 그림과 같이 while문은 ①에서 조건을 확인하고 참인 경우 ②의 코드를 실행하고 다시①으로 이동하는 것을 반복하고 거짓인 경우 ③으로 이동하여 while문을 탈출하게 됩니다.

 

while문 예제

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h >


int main()
{
	int32_t value = 0;

	while (value < 5) {
		printf("value = %d\n", value);
		value++;
	}

	return 0;
}

위의 코드에서 value가 0, 1, 2, 3, 4일 때는 참이기 때문에 printf문을 실행하고 value를 1씩 증가시킵니다. value가 5가되고 조건이 거짓이 되기때문에 while문을 탈출하게 됩니다.

 

break 키워드

break 키워드는 반복문을 탈출하는 키워드입니다. while문을 반복 실행하다가 break문의 위치에 오게되면 바로 while문을 탈출하게 됩니다.

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h >


int main()
{
	int32_t value = 0;

	while (1) {
		printf("value = %d\n", value);

		if (value == 5) {
			break;
		}
		value++;
	}

	return 0;
}

위의 코드에서 while(1)이기 때문에 조건은 항상 참이므로 무한 반복하게 됩니다. 그러나 value가 5일 때 break문을 만나기때문에 바로 while문을 탈출하게 됩니다. break문의 밑에 코드(value++)는 수행되지 않게 됩니다. 그러므로 결과에서 break후 value값은 5가 되게 됩니다.

 

continue 키워드

continue 키워드는 반복문의 조건을 다시 확인하는 키워드입니다. while문을 반복 실행하다가 continue키워드의 위치에 오게되면 while문의 조건을 확인하는 위치로 이동하여 조건을 다시 확인하게 됩니다.

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h >


int main()
{
	int32_t value = 0;
	int32_t continueCount = 0;

	while (1) {
		printf("value = %d, continueCount = %d\n", value, continueCount);

		if (continueCount == 3) {
			break;
		}

		if (value == 3) {
			continueCount++;
			continue;
		}
		value++;
	}

	printf("break후 value = %d, continueCount = %d\n", value, continueCount);

	return 0;
}

위의 코드에서 value가 3일때 continue 키워드를 만나게 됩니다. continue 키워드를 만나게되면 밑의 코드(value++)는 실행되지 않으며 while(1)의 위치로 이동하여 조건을 재확인하게됩니다. while문을 탈출한 후에 value의 값은 3이 되게 됩니다. continue의 경우 해당하는 조건에 아래의 코드를 실행하지 않게할 때 사용 하실 수 있습니다. 

 

이상 while문과 break, continue문에 대한 설명을 마치도록 하겠습니다.

'프로그래밍' 카테고리의 다른 글

c언어/c++ do while(0)  (0) 2020.12.21
c언어/c++ do while문  (2) 2020.12.18
c언어/c++ if 조건문  (0) 2020.12.17
c언어/c++ 속도 최적화 메디안필터  (0) 2020.12.16
c언어/c++ 메디안필터  (0) 2020.12.14