소년코딩

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 블록 외부에서 선언되어야 한다.


cpp 번역: 이 포스트의 원문은 http://www.learncpp.com/cpp-tutorial/56-do-while-statements/ 입니다.

댓글 로드 중…

블로그 정보

소년코딩 - 소년코딩

소년코딩, 자바스크립트, C++, 물리, 게임 코딩 이야기

최근에 게시된 이야기