06.05 - do-while 문 (do-while statement)
루프의 한 가지 흥미로운 점은 루프 조건이 초기에 거짓인 경우에는 루프가 전형 실행되지 않는다는 것이다. 메뉴를 표시할 때와 같이 루프가 적어도 한번 실행되기를 원하는 경우가 있다. 이를 위해 C++은 do while
문을 제공한다.
do
statement
while (condition);
do-while 루프의 문(statement)은 항상 적어도 한번 실행된다. 문이 실행된 후 do-while 루프는 조건(condition)을 검사한다. 조건이 true이면 실행 경로가 do-while 루프의 맨 위로 돌아가서 다시 실행된다.
다음은 do-while 루프를 사용해서 사용자에게 메뉴를 표시하고 사용자가 올바른 선택을 할 때까지 기다리는 예제다.
#include <iostream>
int main()
{
// selection must be declared outside do/while loop
int selection;
do
{
std::cout << "Please make a selection: \n";
std::cout << "1) Addition\n";
std::cout << "2) Subtraction\n";
std::cout << "3) Multiplication\n";
std::cout << "4) Division\n";
std::cin >> selection;
}
while (selection != 1 && selection != 2 &&
selection != 3 && selection != 4);
// do something with selection here
// such as a switch statement
std::cout << "You selected option #" << selection << "\n";
return 0;
}
위 예제에서 한 가지 흥미로운 점은 selection
변수가 do 블록 외부에서 선언되어야 한다는 것이다. 왜 그럴까? selection
변수가 do 블록 내에서 선언될 경우 do 블록이 종료되면 변수가 while 조건부가 실행되기 전에 소멸한다. 즉, 조건부에서 사용할 변수가 필요하다. 따라서 selection
변수는 do 블록 외부에서 선언되어야 한다.
번역: 이 포스트의 원문은 http://www.learncpp.com/cpp-tutorial/56-do-while-statements/ 입니다.