dev.syw

if/switch 조건문과 for/while 반복문, break/continue로 흐름을 제어한다.

조건문과 반복문

프로그램은 위에서 아래로 순서대로 실행되지만, 조건에 따라 다른 길로 가거나 같은 작업을 여러 번 반복해야 할 때가 많습니다. 조건문과 반복문은 이런 흐름 제어를 담당하는 가장 기본적인 도구입니다.

학습 목표

  • if/elseswitch로 분기를 작성한다.
  • for, while, do-while의 차이를 이해한다.
  • breakcontinue로 반복을 제어한다.
  • 향상된 for문으로 배열과 컬렉션을 순회한다.

if / else

조건이 참인지에 따라 실행할 코드를 나눕니다.

int score = 75;

if (score >= 90) {
    System.out.println("A");
} else if (score >= 80) {
    System.out.println("B");
} else if (score >= 70) {
    System.out.println("C");
} else {
    System.out.println("F");
}

조건은 위에서부터 차례로 검사되며, 처음으로 참이 되는 블록만 실행됩니다.

switch

하나의 값을 여러 경우와 비교할 때는 switch가 깔끔합니다.

int day = 3;
switch (day) {
    case 1 -> System.out.println("월요일");
    case 2 -> System.out.println("화요일");
    case 3 -> System.out.println("수요일");
    default -> System.out.println("기타");
}

💡 TIP — 화살표(->) 방식의 switchbreak가 필요 없고 한 case만 실행되어 실수가 줄어듭니다. 옛 방식(case 1:)은 break를 빠뜨리면 다음 case로 흘러가니 주의하세요.

for 반복문

반복 횟수가 정해져 있을 때 가장 많이 씁니다. 초기화; 조건; 증감 세 부분으로 이루어집니다.

for (int i = 1; i <= 5; i++) {
    System.out.println(i + "번째");
}

int sum = 0;
for (int i = 1; i <= 100; i++) {
    sum += i;
}
System.out.println("1~100 합: " + sum);  // 5050

while과 do-while

조건이 참인 동안 반복합니다. while은 검사 후 실행, do-while은 한 번 실행 후 검사합니다.

int n = 1;
while (n <= 3) {
    System.out.println("while: " + n);
    n++;
}

int m = 10;
do {
    System.out.println("do-while: " + m);  // 조건이 거짓이어도 한 번은 실행
    m++;
} while (m <= 3);

⚠️ 주의while문에서 조건을 변화시키는 코드(n++ 등)를 빠뜨리면 무한 루프에 빠집니다. 반드시 종료 조건이 언젠가 거짓이 되도록 작성하세요.

break와 continue

break는 반복을 즉시 종료하고, continue는 현재 반복만 건너뛰고 다음으로 넘어갑니다.

for (int i = 1; i <= 10; i++) {
    if (i == 5) break;        // 5에서 반복 종료
    System.out.println(i);    // 1 2 3 4
}

for (int i = 1; i <= 5; i++) {
    if (i % 2 == 0) continue; // 짝수는 건너뜀
    System.out.println(i);    // 1 3 5
}

향상된 for문

배열이나 컬렉션의 모든 요소를 순서대로 꺼낼 때 간결합니다.

int[] scores = {90, 85, 70};
for (int score : scores) {
    System.out.println(score);
}

인덱스가 필요 없을 때 일반 for문보다 읽기 쉽습니다.

요약

  • if/else는 조건 분기, switch는 하나의 값을 여러 경우와 비교할 때 사용합니다.
  • for는 횟수가 정해진 반복, while은 조건 기반 반복에 적합합니다.
  • do-while은 조건과 무관하게 최소 한 번 실행됩니다.
  • break는 반복 종료, continue는 현재 회차 건너뛰기입니다.
  • 향상된 for문은 배열/컬렉션 순회를 간결하게 합니다.

연습문제

  1. 1부터 10까지 중 짝수만 출력하세요.
  2. 점수에 따라 "합격"(60 이상) / "불합격"을 if로 출력하세요.
  3. while문으로 1부터 시작해 누적 합이 50을 넘는 첫 숫자를 찾으세요.
  4. 배열 {3, 7, 2, 9, 5}의 최댓값을 향상된 for문으로 구하세요.

힌트 — 짝수 판별은 i % 2 == 0, 최댓값은 비교하며 갱신합니다.

💡 연습문제 풀이

불러오는 중…

함께 보면 좋은 자료

댓글 0

Java” 강좌에 대한 댓글입니다.

댓글을 작성하려면 로그인이 필요합니다.