본문으로 건너뛰기
Advertisement

4.1 조건문 (Conditional Statements)

조건문은 조건식의 결과에 따라 블록 { } 내부의 실행 결로를 변경할 때 사용됩니다. 크게 if문과 switch문이 있습니다.

1. if, if-else, if-else if 문

가장 기본이 되는 조건문으로, 조건식이 true 일 때만 블록 안의 문장들을 수행하도록 합니다. 여러 가지의 조건을 걸어 분기 처리를 할 때는 else ifelse 구문을 조합합니다.

int score = 85;

if (score >= 90) {
System.out.println("A등급입니다.");
} else if (score >= 80) { // 90 미만이고 80 이상인 경우
System.out.println("B등급입니다.");
} else { // 80 미만인 모든 경우
System.out.println("C등급 이하입니다.");
}

중첩 if 문

if문의 블록 바디 안에는 또 다른 if문을 작성할 수 있습니다. 중첩 횟수에는 제한이 없습니다.

int score = 95;
char opt = '0';

if (score >= 90) {
if (score >= 98) {
opt = '+';
} else if (score < 94) {
opt = '-';
}
}
System.out.println("당신의 학점은 A" + opt + " 입니다.");

2. switch 문

조건의 경우의 수가 아주 많을 때는 다중 if-else문보다 switch문을 사용하는 것이 훨씬 가독성이 좋고 빠릅니다.

switch문은 어떤 '값'과 일치하는 case를 찾아 바로 이동하며, break문을 만나면 switch 블록을 빠져나옵니다. if문과 달리 조건문이 아니라 정확한 '값'이 일치하는지 를 확인합니다.

int month = 4;
String season = "";

switch (month) {
case 3:
case 4:
case 5:
season = "봄";
break; // break를 누락하면 아래 case들을 통과하면서(fall-through) 원치않는 동작이 발생할 수 있습니다.
case 6: case 7: case 8: // 가로로 한 줄에 나열하기도 합니다.
season = "여름";
break;
default:
// 해당하는 case가 전혀 없을 때 수행됩니다.
season = "그 외의 계절";
}
System.out.println(month + "월은 " + season + "입니다.");

Java 14 버전부터는 화살표(->) 구문과 yield 등 더 발전된 형태의 switch 식이 추가되었습니다.

Advertisement