모든 프로그램은 단순히 값을 저장하고 출력하는 것에서 그치지 않습니다. 실제로는 상황에 따라 다르게 동작하거나, 특정 작업을 반복해야 하죠. 바로 그럴 때 사용하는 것이 조건문(Conditional Statements)과 반복문(Loops)입니다.
1. 조건문 (Conditional Statements)
조건문은 특장 조건에 따라 코드를 선택적으로 실행할 수 있도록 해주는 제어문입니다.
🔹 if 문
가장 기본적인 조건문입니다. 조건이 ture일 때만 블록이 실행됩니다.
int age = 20;
if (age >= 18) {
System.out.println("성인입니다.");
}
🔹 else와 else if 추가
if 문과 함께 else와 else if를 사용하면, 조건이 false일 때 실행할 코드도 지정 가능합니다.
if (age >= 18) {
System.out.println("성인입니다.");
} else {
System.out.println("미성년자입니다.");
}
if (age >= 65) {
System.out.println("노약자입니다.");
} else if (age >= 18) {
System.out.println("성인입니다.");
} else {
System.out.println("미성년자입니다.");
}
🔹 switch 문
하나의 변수에 따라 여러 분기를 처리할 때 사용합니다. if-else보다 코드가 더 깔끔하게 표현 가능합니다. 만약 조건이 3개 이상인 경우 switch 문을 활용하는 것이 가독성이 좋을 수 있습니다.
switch (weekDay) {
case "mon":
System.out.println("월요일");
break;
case "tue":
System.out.println("화요일");
break;
case "wed":
System.out.println("수요일");
break;
case "thu":
System.out.println("수요일");
break;
case "fri":
System.out.println("수요일");
break;
case "sat":
case "sun":
System.out.println("주말");
break;
default:
System.out.println("알 수 없는 요일");
}
🔍 break를 빼면 아래 case로 계속 진행됩니다.
변수 weekDay가 'mon'인 경우 "월요일"을 출력하고 break 키워드를 만나 빠져나옵니다.
변수 weekDay가 'sat'인 경우 break 키워드가 존재하지 않아 다음 case를 진행하게 되어 "주말"을 출력합니다.
2. 반목문 (Loops)
반복문은 같은 코드를 여러 번 실행할 수 있게 해 줍니다.
🔹 for문
가장 대표적인 반복문으로, 반복 횟수가 정해져 있을 때 사용합니다. 초기값, 조건, 증감식을 한 줄에 표현하여 간결한 반복을 구현할 수 있습니다.
for (int i = 0; i < 5; i++) {
System.out.print(i + " "); // '0 1 2 3 4 '
}
🔹 for-each 문 (향상된 for문)
배열이나 리스트 등을 순회할 때 사용합니다.
String[] fruits = {"사과", "바나나", "딸기"};
for (String fruit : fruits) {
System.out.println(fruit);
}
🔹 while문
조건이 true인 동안 반복합니다. 조건이 언제 끝날지 모를 때 사용하기 좋습니다.
int i = 0;
while (i < 3) {
System.out.print(i + " ");
i++;
}
// 결과: 0 1 2
🔹 do-while 문
일단 한 번 실행하고, 조건을 검사합니다. 조건을 나중에 검사하기 때문에 처음에 무조건 한 번은 실행됩니다.
int i = 0;
do {
System.out.println("i의 값: " + i);
++i;
} while (i < 1);
📌 반복문 흐름 제어: break와 continue
반복문을 실행하다 보면, 특정 조건일 때 반복을 끝내거나, 그 회치만 건너뛰고 다음 반복으로 넘어가고 싶을 때가 있습니다. 그럴 때 사용하는 키워드가 바로 break와 continue입니다.
1) break: 반복문 강제 종료
break는 현재 실행 중인 반복문을 즉시 종료합니다. 조건에 따라 루프를 빠져나가고 싶을 때 사용합니다.
for (int i = 0; i < 100; i++) {
if (i == 5) {
break; // i가 5일 때 반복문 종료
}
System.out.print(i + " ");
}
// 결과: 1 2 3 4
👉 i == 5일 때 break가 실행되며, 반복문이 즉시 종료됩니다.
⚠️ break는 가장 가까운 반복문만 종료합니다. 중첩 반복문에서는 외부 루프를 종료하지 않습니다.
2) continue: 해당 회차 건너뛰기
continue는 반복문의 나머지 코드를 실행하지 않고 다음 반복으로 넘어갑니다.
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) {
continue;
}
System.out.println("홀수: " + i);
}
// 결과
홀수: 1
홀수: 3
홀수: 5
👉 i가 짝수(i % 2 ==0)이면 continue를 만나 다음 코드를 실행하지 않고 넘어갑니다.
int i = 0;
while (i < 10) {
i++;
if (i == 2) continue;
if (i == 5) break;
System.out.print(i + " ");
}
// 결과: 1 3 4