프로그래밍

c언어/c++ do while문

업글 2020. 12. 18. 00:28

안녕하세요 업글입니다. 이번 포스팅에서는 do while문에 대해서 설명드리겠습니다.

 

do while문에 대한 설명

while문에 대해서 잘 모르시는 분은 지난번 포스팅한 while문에 대해서 먼저 읽어보시는 것을 추천드립니다.

2020/12/17 - [분류 전체보기] - c언어/c++ while문

 

c언어/c++ while문

안녕하세요 업글입니다. 이번 포스팅에서는 반복문중 하나인 while문에 대해서 설명 드리도록 하겠습니다. while문에 대한 설명 c언어 및 c++에서 반복문은 while문, do while문, for문이 있습니다. 이 반

elevate-yourself.tistory.com

do while문은 while문과 거의 동일하나 하나의 차이가 있습니다. while전에 do가 있듯이 반복하기 전에 뭔가를 해라라는 의미입니다. 즉, while문처럼 반복하기 전에 먼저 코드를 수행하고 반복하게 됩니다.

do while문 동작

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

또 한번 강조하지만 중요한점은 먼저 무조건 코드를 실행한 후 조건을 확인한다는 점입니다.

문법적으로 while(조건)뒤에 세미클론을 붙여줘야 한다는점도 꼭 기억하시길 바랍니다. 세미클론이 없으면 컴파일러에서 에러로 출력하게됩니다.

 

do while문 예제

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


int main()
{
	int32_t value = 0;

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

		value++;
	} while (value == 0);

	printf("do while후 value = %d\n", value);

	return 0;
}

위의 코드에서 value가 1일 때 value == 0의 조건에서 거짓이기 때문에 printf와 value++을 1번만 실행하고 do while문을 탈출하게 됩니다.

 

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


int main()
{
	int32_t value = 0;

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

		value++;
	} while (value == 1);

	printf("do while후 value = %d\n", value);

	return 0;
}

위의 코드에서는 value가 1이 되고 value == 1의 조건에서 참이기 때문에 do while구문을 1회더 반복 실행한 후 value가 2가되어 조건이 거짓이 되기 때문에 do while문을 탈출하게 됩니다.

 

do while문에서 break 키워드

while문 포스팅에서 설명한 것처럼 break 키워드는 반복문을 탈출하는 키워드입니다. do while의 경우도 while문과 동일하게 break 키워드의 위치에 오게되면 do while문을 바로 탈출하게 됩니다.

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


int main()
{
	int32_t value = 0;

	do {
		printf("value = %d\n", value);
		
		if (value == 0) {
			break;
		}
		value++;
	} while (value == 1);

	printf("do while후 value = %d\n", value);

	return 0;
}

위의 코드에서 value의 초기 값은 0이므로 break문을 만나게 됩니다. break문을 만나고 바로 do while문을 탈출하게 되므로 밑의 코드(value++)은 실행되지 않게됩니다.

do while문에서 continue 키워드

while문 포스팅에서 설명한 것처럼 continue 키워드는 반복문의 조건을 다시 확인하는키워드입니다. 그러므로 do while의 경우도 while문과 동일하게 continue 키워드를 만나게 되면 조건을 확인하는 위치인 while(조건)으로 이동하게 됩니다.

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


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

	do {
		printf("value = %d, continueCount = %d\n", value, continueCount);
		if (continueCount == 3) {
			break;
		}

		if (value == 0) {
			continueCount++;
			continue;
		}
		value++;
	} while (value == 0);

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

	return 0;
}

위의 코드에서 value는 0이기때문에 continue문을 만나게됩니다. continue후 while(value == 0);으로 바로 이동하기 때문에 value++은 실행되지 않습니다. 그러므로 총 continue를 3회 만나고 조건을 3회 확인한 후 continueCount가 3일 때 break를 만나게되어 do while반복문을 탈출하게 됩니다.

 

이상 do while문에 대한 설명을 마치겠습니다.

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

[c언어] 큐(Queue)  (0) 2021.01.01
c언어/c++ do while(0)  (0) 2020.12.21
c언어/c++ while문  (0) 2020.12.17
c언어/c++ if 조건문  (0) 2020.12.17
c언어/c++ 속도 최적화 메디안필터  (0) 2020.12.16