Switch
- case 문과 함께 사용하며 if문 보다 좀더 가독성이 좋은 조건문 표현식
switch(피연산자)
{ case(조건): (연산) }
이러한 형태로 많이 사용
switch 피연산자
가 case 조건
을 만족하면 case:
뒤에 명시되어 있는 연산을 수행
case(조건): (연산)
은 여러 개 설정 가능
- 각 case 의 연산문 마지막에는
break;
를 꼭 넣어줘야 함!!
break;
문은 해당 case 의 연산문이 끝났다는것을 알려주어 switch 문을 종료시켜줌
- 만약 case 의 연산문 마지막에
break;
를 안넣어주면 case 의 연산문이 안끝났기때문에 switch
문 블럭이 끝날때 까지 전부 실행됨
switch문
중괄호 안의 제일 마지막에 default: (연산)
을 명시해주어 case 조건
들이 모두 만족하지 않을때 수행할 연산을 정해주어야 함
default: (연산)
은 아무것도 만족하지 않을때 수행하는 것이라, 없다면 생략 가능
ex)
public class W14 {
public static void main(String[] args) {
int month = 8;
String monthString = "";
switch (month) {
case 1:
monthString = "1월";
break;
case 2:
monthString = "2월";
break;
case 3:
monthString = "3월";
break;
case 4:
monthString = "4월";
break;
case 5:
monthString = "5월";
break;
case 6:
monthString = "6월";
break;
case 7:
monthString = "7월";
break;
case 8:
monthString = "8월";
break;
case 9:
monthString = "9월";
break;
case 10:
monthString = "10월";
break;
case 11:
monthString = "11월";
break;
case 12:
monthString = "12월";
break;
default:
monthString = "알 수 없음";
}
System.out.println(monthString);
}
}
- month 값이 8로 주어졌기 때문에 8월이 출력됨
If문과 Switch문의 차이점
- 복합조건
- if 문은 복합조건을 지원
- 복합조건 : 괄호
()
안에 조건 여러개를 지정하여 조건문을 수행 가능
- switch 문은 피연산자 한개에 대한 조건만 지원
- 코드중복
- if 문은 상대적으로 코드중복이 많음
- switch 문은 코드중복이 적음
Switch문 예제를 If문으로 코드를 작성한다면
if (month == 1) {
monthString = "1월";
} else if (month == 2) {
monthString = "2월";
} else if (month == 3) {
monthString = "3월";
} else if (month == 4) {
monthString = "4월";
} else if (month == 5) {
monthString = "5월";
} else if (month == 6) {
monthString = "6월";
} else if (month == 7) {
monthString = "7월";
} else if (month == 8) {
monthString = "8월";
} else if (month == 9) {
monthString = "9월";
} else if (month == 10) {
monthString = "10월";
} else if (month == 11) {
monthString = "11월";
} else if (month == 12) {
monthString = "12월";
} else {
monthString = "알수 없음";
}
System.out.println(monthString);
- month = 8로 주어졌기 때문에 8월 출력