while과 do-while 반복문
while 반복문 개요
while 반복문은 조건이 참인 동안 코드 블록을 반복적으로 실행하는 제어 구조입니다.
반복 횟수가 명확하지 않을 때 주로 사용되며, 조건을 먼저 검사한 후 코드 블록을 실행합니다.
while 반복문의 기본 구조
조건이 참인 동안 코드 블록이 계속해서 실행됩니다.
while 반복문 예제
기본 예제 : 1부터 5까지 출력
사용자 입력 처리
이 예제는 사용자가 0을 입력할 때까지 입력받은 숫자들의 합을 계산합니다.
do-while 반복문 개요
do-while 반복문은 코드 블록을 최소한 한 번 실행한 후 조건을 검사하는 반복문입니다. 조건 검사 전에 코드 블록이 반드시 한 번은 실행되어야 할 때 사용합니다.
do-while 반복문의 기본 구조
코드 블록이 먼저 실행된 후 조건이 검사됩니다.
do-while 반복문 예제
기본 예제 : 1부터 5까지 출력
메뉴 선택 프로그램
이 예제는 사용자가 종료 옵션을 선택할 때까지 메뉴를 반복해서 보여줍니다.
while vs do-while
- while : 조건을 먼저 검사하고 코드를 실행
- do-while : 코드를 먼저 실행하고 조건을 검사
do-while은 코드 블록이 최소한 한 번은 실행되어야 할 때 사용합니다.
무한 루프와 break 문
무한 루프는 조건이 항상 참인 반복문입니다. 특정 조건이 만족될 때까지 계속 실행되어야 하는 경우에 사용합니다.
continue 문
continue 문은 현재 반복을 즉시 종료하고 다음 반복으로 넘어갑니다.
중첩된 반복문
while과 do-while도 for 문과 마찬가지로 중첩하여 사용할 수 있습니다.
주의사항
- 무한 루프에 빠지지 않도록 주의해야 합니다. 반복문 내에서 조건을 변경하는 코드가 반드시 있어야 합니다.
- 조건문에서 변수를 변경할 때 주의해야 합니다. 특히 do-while에서 이런 실수가 발생하기 쉽습니다.
- 부동소수점 비교 시 주의가 필요합니다. 정확성 문제로 인해 예상치 못한 결과가 발생할 수 있습니다.
- break와 continue를 과도하게 사용하면 코드의 가독성이 떨어질 수 있으므로 주의해야 합니다.
연습 문제
- 사용자로부터 숫자를 입력받아 그 합을 계산하는 프로그램을 작성하세요. (0 입력 시 종료)
- 난수를 생성하고 사용자가 이를 맞추는 숫자 맞추기 게임을 작성하세요. 사용자의 입력이 높은지 낮은지 알려주어야 합니다.
- 문자열을 입력받아 각 문자를 역순으로 출력하는 프로그램을 작성하세요.
참고자료
- C++ 공식 문서의 while 문 섹션 : C++ while statement
- C++ 공식 문서의 do-while 문 섹션 : C++ do-while statement
- C++ Core Guidelines의 반복문 관련 규칙 : ES.73 : Use a while-statement when you don't know the number of iterations
- Effective C++ : 항목 3 "가능한 한 const를 사용하라" - Scott Meyers (반복문에서의 const 사용)