- if 문의 조건이 "같다(
==
)"일 경우 switch 문으로 대체 가능- 콤마(A2)와 화살표(A3)는 Java 14버전 이상부터 사용 가능
- 폴스루(fall through): switch 문에서 하나의 case가 실행된 후 다음 case로 통과하는 현상
Q. 월(month)을 입력받아서 어떤 계절인지 출력하세요.
월 | 계절 |
---|---|
3, 4, 5 | 봄 |
6, 7, 8 | 여름 |
9, 10, 11 | 가을 |
12, 1, 2 | 겨울 |
A1. 기본 (폴스루O)
폴스루가 나타난다. 그러므로 폴스루를 원하지 않는 곳에 break 문을 작성해야 한다.
package lesson02;
import java.util.Scanner;
public class Ex04 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("월을 입력하세요 : ");
int month = scan.nextInt();
switch (month) {
case 3:
case 4:
case 5:
System.out.println("봄");
break;
case 6:
case 7:
case 8:
System.out.println("여름");
break;
case 9:
case 10:
case 11:
System.out.println("가을");
break;
case 12:
case 1:
case 2:
System.out.println("겨울");
break;
default:
System.out.println("월을 잘못 입력하셨습니다.");
}
scan.close();
}
}
A2. 콤마 (폴스루O)
여러 case 값을 ,
로 구분하여 하나의 case 문에 묶어 사용할 수 있다. A1과 마찬가지로 폴스루를 원하지 곳에 break 문을 사용해야 한다.
package lesson02;
import java.util.Scanner;
public class Ex04 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("월을 입력하세요 : ");
int month = scan.nextInt();
switch (month) {
case 3, 4, 5:
System.out.println("봄");
break;
case 6, 7, 8:
System.out.println("여름");
break;
case 9, 10, 11:
System.out.println("가을");
break;
case 12, 1, 2:
System.out.println("겨울");
break;
default:
System.out.println("월을 잘못 입력하셨습니다.");
}
scan.close();
}
}
A3. 화살표 (폴스루X)
각 case를 ->
로 연결하여 표현할 수 있다. 폴스루가 나타나지 않으므로 break 문을 사용하지 않아도 된다.
package lesson02;
import java.util.Scanner;
public class Ex04 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("월을 입력하세요 : ");
int month = scan.nextInt();
switch (month) {
case 3, 4, 5 -> System.out.println("봄");
case 6, 7, 8 -> System.out.println("여름");
case 9, 10, 11 -> System.out.println("가을");
case 12, 1, 2 -> System.out.println("겨울");
default -> System.out.println("월을 잘못 입력하셨습니다.");
}
scan.close();
}
}
초기 최댓값(max
)을 첫 번째 요소(a
)로 설정한 후 더 큰 값이 나타날 때마다 최댓값을 업데이트하는 방식
package lesson02;
import java.util.Scanner;
public class Quiz05 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("세 개의 수를 입력하세요 : ");
int a = scan.nextInt();
int b= scan.nextInt();
int c = scan.nextInt();
int max = a;
if (max < b) {
max = b;
}
if (max < c) {
max = c;
}
System.out.println(max);
scan.close();
}
}