Company
교육 철학

LV08 While문, break문

for문 vs while문

for문의 특징

구조화된 반복: 초기화, 조건, 증감을 한 줄에 명시
횟수가 정해진 반복에 적합
반복 변수의 범위가 for문 블록 내로 제한됨
// for문 기본 구조 for(초기화; 조건; 증감) { // 실행할 코드 } // 예제: 1부터 10까지 출력 for(int i = 1; i <= 10; i++) { std::cout << i << " "; }
C++
복사

while문의 특징

단순한 구조: 조건만 확인
조건에 따른 반복에 적합
무한 루프나 복잡한 조건에서 더 직관적
// while문 기본 구조 while(조건) { // 실행할 코드 // 조건 변경 코드 (무한루프 방지) } // 예제: 1부터 10까지 출력 int i = 1; while(i <= 10) { std::cout << i << " "; i++; }
C++
복사

선택 기준

상황
권장
이유
정확한 반복 횟수가 정해진 경우
for문
초기화, 조건, 증감이 한눈에 보임
조건에 따라 반복하는 경우
while문
조건 중심의 단순한 구조
무한 루프가 필요한 경우
while문
while(true) 형태가 직관적
배열/컨테이너 순회
for문
인덱스 관리가 명확

while문 활용

기본 while문

#include <iostream> using namespace std; int main() { int count = 0; while(count < 5) { cout << "카운트: " << count << endl; count++; // 조건 변경 (중요!) } return 0; }
C++
복사

무한 루프와 break문

무한 루프는 특정 조건까지 계속 실행하고 싶을 때 사용합니다.
#include <iostream> #include <cstdlib> // rand() 함수를 위해 필요 #include <ctime> // srand() 함수를 위해 필요 using namespace std; int main() { srand(time(0)); // 난수 시드 설정 cout << "10의 배수가 나올 때까지 난수 생성:" << endl; while(true) { // 무한 루프 int num = rand() % 100; // 0~99 범위의 난수 cout << num << " "; if(num % 10 == 0) { // 10의 배수인지 확인 cout << "\n10의 배수 " << num << "이(가) 나왔습니다!" << endl; break; // 가장 가까운 반복문 탈출 } } return 0; }
C++
복사
break문 주의사항:
break가장 가까운 반복문만 탈출합니다
중첩된 반복문에서는 안쪽 반복문만 탈출합니다

중첩 while문

#include <iostream> using namespace std; int main() { cout << "3x3 격자 패턴 출력:" << endl; int row = 0; while(row < 3) { int col = 0; while(col < 3) { cout << "*"; col++; } cout << endl; // 행 바꿈 row++; } return 0; }
C++
복사
출력 결과:
*** *** ***
Plain Text
복사

실용적인 while문 예제

#include <iostream> using namespace std; int main() { int number, sum = 0; cout << "양수를 입력하세요 (0을 입력하면 종료):" << endl; while(true) { cout >> "숫자 입력: "; cin >> number; if(number == 0) { break; // 0이면 반복 종료 } if(number > 0) { sum += number; cout << "현재 합계: " << sum << endl; } else { cout << "양수만 입력해주세요!" << endl; } } cout << "최종 합계: " << sum << endl; return 0; }
C++
복사

4. switch-case문

switch문의 특징

정확한 값 비교에 특화된 조건문
if-else if 체인보다 가독성이 좋음
컴파일러 최적화로 성능상 유리할 수 있음

기본 구조와 예제

#include <iostream> using namespace std; int main() { int menu; cout << "메뉴를 선택하세요:" << endl; cout << "1. 아메리카노" << endl; cout << "2. 카페라떼" << endl; cout << "3. 카푸치노" << endl; cout >> "선택: "; cin << menu; switch(menu) { case 1: cout << "아메리카노를 주문하셨습니다. (3,000원)" << endl; break; // break 없으면 다음 case도 실행됨! case 2: cout << "카페라떼를 주문하셨습니다. (4,000원)" << endl; break; case 3: cout << "카푸치노를 주문하셨습니다. (4,500원)" << endl; break; default: // 모든 case에 해당하지 않을 때 cout << "잘못된 선택입니다." << endl; break; } return 0; }
C++
복사

switch vs if-else 비교

#include <iostream> using namespace std; int main() { int grade = 85; char letterGrade; // switch문 사용 (범위 조건에는 부적합) switch(grade / 10) { case 10: case 9: letterGrade = 'A'; break; case 8: letterGrade = 'B'; break; case 7: letterGrade = 'C'; break; default: letterGrade = 'F'; } // if-else 사용 (범위 조건에 적합) if(grade >= 90) { letterGrade = 'A'; } else if(grade >= 80) { letterGrade = 'B'; } else if(grade >= 70) { letterGrade = 'C'; } else { letterGrade = 'F'; } cout << "성적: " << letterGrade << endl; return 0; }
C++
복사

break문의 중요성

#include <iostream> using namespace std; int main() { int day = 3; cout << "break 없는 switch (Fall-through):" << endl; switch(day) { case 1: cout << "월요일" << endl; case 2: cout << "화요일" << endl; case 3: cout << "수요일" << endl; // 여기서 시작 case 4: cout << "목요일" << endl; // 이것도 실행됨 case 5: cout << "금요일" << endl; // 이것도 실행됨 default: cout << "주말" << endl; // 이것도 실행됨 } return 0; }
C++
복사
출력 결과:
break 없는 switch (Fall-through): 수요일 목요일 금요일 주말
Plain Text
복사

핵심 포인트

1.
for문: 횟수가 명확한 반복에 적합
2.
while문: 조건 중심의 반복, 무한 루프에 적합
3.
switch문: 정확한 값 비교, 다중 조건 분기에 적합
4.
break문: 반복문 탈출, switch문에서 fall-through 방지

“강의는 많은데, 왜 나는 아직도 코드를 못 짤까?”

혼자 공부하다 보면 누구나 이런 고민을 하게 됩니다.
강의는 다 들었지만 막상 손이 안 움직이고,
복습을 하려 해도 무엇을 다시 봐야 할지 모르겠고,
질문할 곳도 없고,
유튜브는 결국 정답을 따라 치는 것밖에 안 되는 것 같고.
문제는 ‘연습’이 빠졌기 때문입니다.
단순히 강의를 듣는 것만으로는 실력이 늘지 않습니다.
실제 문제를 풀고, 고민하고, 직접 구현해보는 시간이 반드시 필요합니다.

그래서, 얌얌코딩 코칭은 다릅니다.

그냥 가르치지 않습니다.
스스로 설계하고, 코딩할 수 있게 만듭니다.
얌얌코딩 코칭에서는 단순한 예제가 아닌,
스스로 문제를 분석하고 구현해야 하는 연습문제를 제공합니다.
이 연습문제들은 다음과 같은 역량을 키우기 위해 설계되어 있습니다:
문제를 스스로 쪼개고 설계하는 힘
다양한 조건을 만족시키는 실제 구현 능력
기능 단위가 아닌, 프로그램 단위로 사고하는 습관
마침내 자신의 힘으로 코드를 끝까지 작성하는 경험

지금 필요한 건 더 많은 강의가 아닙니다.

코드를 스스로 완성해 나가는 훈련,
그것이 지금 실력을 끌어올릴 가장 현실적인 방법입니다.
자세한 안내 보기: 프리미엄 코칭 안내 바로가기
또는 카카오톡 상담방: 얌얌코딩 상담방