if/switch 조건문과 for/while 반복문, break/continue로 흐름을 제어한다.
조건문과 반복문
프로그램은 위에서 아래로 순서대로 실행되지만, 조건에 따라 다른 길로 가거나 같은 작업을 여러 번 반복해야 할 때가 많습니다. 조건문과 반복문은 이런 흐름 제어를 담당하는 가장 기본적인 도구입니다.
학습 목표
if/else와switch로 분기를 작성한다.for,while,do-while의 차이를 이해한다.break와continue로 반복을 제어한다.- 향상된 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 — 화살표(
->) 방식의switch는break가 필요 없고 한 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부터 10까지 중 짝수만 출력하세요.
- 점수에 따라 "합격"(60 이상) / "불합격"을
if로 출력하세요. while문으로 1부터 시작해 누적 합이 50을 넘는 첫 숫자를 찾으세요.- 배열
{3, 7, 2, 9, 5}의 최댓값을 향상된 for문으로 구하세요.
힌트 — 짝수 판별은
i % 2 == 0, 최댓값은 비교하며 갱신합니다.
💡 연습문제 풀이
불러오는 중…
댓글 0
“Java” 강좌에 대한 댓글입니다.