조건문 - Switch

김나영·2023년 5월 31일
0

Java 문법 종합반

목록 보기
3/21

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문
        switch (month) {
            // case~~ 연산
            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문의 차이점

  1. 복합조건
    • if 문은 복합조건을 지원
      • 복합조건 : 괄호()안에 조건 여러개를 지정하여 조건문을 수행 가능
    • switch 문은 피연산자 한개에 대한 조건만 지원
  2. 코드중복
    • 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월 출력

0개의 댓글