잘 사용해보지 않았던 switch문에 대한 개념을 정리해보려고 한다🧐
조건문은 if문과 switch문으로 나뉜다.
switch문은 if문과 비슷하지만 좀 더 정형화 된 조건판단문이다.
처리해야 하는 경우의 수가 많은 경우 if-else if문 보다 switch문이 주로 사용된다.
switch/case 문은 if else 구조로 변경이 가능하지만 if else 구조로 작성된 모든 코드를 switch 문으로 변경할 수는 없다.
switch문의 조건식의 값은 true/false값이 아닌 어떠한 결과의 값을 가진다
= switch문의 조건식의 결과는 true/false값이 아니어야 한다!
중복된 case문은 존재할 수 없다!
조건식의 결과와 일치하는 case문이 실행되며, case문이 실행된 후 break를 만나야 중지되므로 break문을 잊지 않도록 한다.
⇒ break문이 빠져 있는 경우 그 다음의 case문이 실행된다!
- switch문의 조건식의 결과는
정수, 상수(문자포함) 또는 문자열의 형태
=byte
,short
,char
,int
만 가능하다
default:
default문
= 조건식의 결과와 일치하는 case문이 없는경우 수행되는 문장. 생략이 가능하다
switch(입력변수) {
case 입력값1: ...
break;
case 입력값2: ...
break;
...
default: ...
break;
}
문제 : 월을 입력받아 해당 월의 일수를 보여주는 프로그램을 작성하시오
- 1, 3, 5, 7, 8, 10, 12월 : 31일까지
- 4, 6, 9, 11 월 : 30일까지
- 2 월 : 28일까지
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("월을 입력하세요 => ");
int month = sc.nextInt();
switch(month){
case 1: case 3: case 5: case 7:
case 8: case 10: case 12:
System.out.println("31일 까지 입니다");
break;
case 4: case 6: case 9: case 11:
System.out.println("30일 까지 입니다");
break;
case 2:
System.out.println("28일 까지 입니다");
break;
}
}
}
마지막에 2월을 case로 지정해 주어도 되지만,
아래와 같이 default문을 사용해도 된다
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("월을 입력하세요 => ");
int month = sc.nextInt();
switch(month){
case 1: case 3: case 5: case 7:
case 8: case 10: case 12:
System.out.println("31일 까지 입니다");
break;
case 4: case 6: case 9: case 11:
System.out.println("30일 까지 입니다");
break;
default:
System.out.println("28일 까지 입니다");
break;
}
}