do while 루프 C++ 자습서 25 (continue, break)

do while 루프 C++

do while 루프는 기본적으로 while 루프의 다른 버전입니다.

while 루프의 형식이 표현식 검사를 진행 후 true 가 나오면 body 를 실행하고 false 가 나오면 body를 실행하지 않기 때문에 한번은 실행해야 하는 경우 while 문 앞에다 별도로 body 코드를 작성해야 하는데 이는 코드 가독성에 좋지가 않습니다.

그래서 do while 문은 표현식을 검사하기 전에 일단 body를 한번은 실행시키는 while 문입니다. 그것말고 차이는 없습니다. 따라서 while 문이 이해가 된다면 do while 문도 어렵지 않습니다.

do
    body
while (표현식 검사);

do while 루프 예제

다음은 do while 루프 예제입니다. 한가지 주의할 사항은 while 표현식 검사 후에는 ; 세미콜론을 붙여야 컴파일 에러를 피할 수 있습니다.

입력을 받아서 그 입력값을 표현식 검사에 사용해야 하는 경우 한번은 실행할 필요가 있으므로 do while 을 사용합니다.

#include <iostream>

using std::cout;
using std::cin;
using std::endl;

int main() {


	int sum = 0;
	int temp = 0;

	do {
		cout << "합산할 숫자를 입력하시오. (종료는 0) -> ";
		cin >> temp;
		sum += temp;

	} while (temp != 0);

	cout << " 합계는 " << sum << " 입니다. " << endl;

	return 0;
}



[실행결과]

합산할 숫자를 입력하시오. (종료는 0) -> 10
합산할 숫자를 입력하시오. (종료는 0) -> 40
합산할 숫자를 입력하시오. (종료는 0) -> 10
합산할 숫자를 입력하시오. (종료는 0) -> 30
합산할 숫자를 입력하시오. (종료는 0) -> 0
 합계는 90 입니다.

do while 루프 continue 문 사용

continue 문의 사용법을 알아보겠습니다. while 루프에서 continue 문을 만나면 body의 그 다음 줄 내용은 무시하고 표현식 검사로 돌아갑니다. 흔히 continue 문과 break 문을 비교하는데 break 문은 루프를 완전히 끝내지만 continue 는 말 그대로 컨틴뉴 계속합니다.

특정 조건을 만들어야 하므로 if 문 등 분기문과 함께 사용합니다.

아래의 예제는 짝수가 아닌 경우 숫자를 합산하지 않도록 합니다.

#include <iostream>

using std::cout;
using std::cin;
using std::endl;

int main() {


	int sum = 0;
	int temp = 0;

	do {
		cout << "합산할 짝수를 입력하시오. (종료는 0) -> ";
		cin >> temp;

		if (temp % 2 != 0)
			cout << "*-- 짝수만 입력 가능합니다" << endl;
			continue;
		sum += temp;

	} while (temp != 0);

	cout << " 합계는 " << sum << " 입니다. " << endl;

	return 0;
}

[실행결과]

합산할 짝수를 입력하시오. (종료는 0) -> 1
*-- 짝수만 입력 가능합니다
합산할 짝수를 입력하시오. (종료는 0) -> 10
합산할 짝수를 입력하시오. (종료는 0) -> 6
합산할 짝수를 입력하시오. (종료는 0) -> 7
*-- 짝수만 입력 가능합니다
합산할 짝수를 입력하시오. (종료는 0) -> 0
 합계는 0 입니다.

do while break 문

break 문은 현재 속한 루프에서 이탈하는 예약어입니다. while 문의 종료 조건으로도 사용할 수 있기 때문에 유용합니다.

아래 예제는 while(1) 로 무한루프를 만들었습니다. 무한루프에서 빠져나오기 위해서 if 분기문에 break 문을 달아둘 수 있습니다.

while 문은 무한루프로 많이 사용하기 때문에 키보드 입력을 받아서 break 로 루프를 종료하는 방식도 가능합니다.

#include <iostream>

using std::cout;
using std::cin;
using std::endl;

int main() {

	int i = 0;

	do {

		// i가 10일때 
		if (i == 10)
			break;
		cout << "i : " << i << endl;

		i++;

	} while (1);

	cout << "종료합니다! " << endl;

	return 0;
}


[실행결과]

i : 0
i : 1
i : 2
i : 3
i : 4
i : 5
i : 6
i : 7
i : 8
i : 9
종료합니다!

요약

do while 루프 C++에 대해서 알아봤습니다. 앞서 설명한 것 처럼 while 문을 이해한다면 내용이 그렇게 어렵지 않습니다. 또 이 while 문은 C언어, 자바 등에도 있습니다. 거의 비슷한 형식을 갖추고 있으므로 C++을 학습한다면 나중에 다른 언어를 배우는데도 여러모로 도움이 될 것 입니다.

C++ 는 프로그래밍 언어나 운영체제를 개발하는데 많이 사용되기 때문에 다른 언어들에도 적지 않은 영향을 끼쳤습니다.

추가적인 연습을 통해서 do while 문을 숙달할 수 있도록 합니다.

참고문서

C++ Do While Loop (w3schools.com)

do while 루프 C++

Leave a Comment