Programming/JAVA

[JAVA] 조건문 switch문

잇나우 2020. 2. 13. 00:05
반응형

switch문

switch 문은 if문과 같이 조건에 맞는 경우에만 코드를 실행시키거나 실행되지 않도록 하는 조건문이다.

switch 형식

switch(인자){
case 조건값1 :
    실행문
    [break;]
case 조건값2 :
    실행문
    [break;]
default :
    실행문
    [break;]
}

switch 문에서 인자로는 변수가 들어갈수 있고 수식도 들어갈 수 있다. 하지만 비교와 같은 조건식은 들어갈 수가 없다. 인자의 값에 해당되는 조건값을 가진 case가 실행이 된다. case는 여러개가 와도 상관이 없으며 break가 있다면 해당 case를 실행한 후 바로 switch문이 종료된다. 자바스크립트에서 function의 return과 비슷하다. 만약 break가 없다면 case가 실행되고 다음 case도 실행된다. break를 만날때까지 실행된다. 마지막에는 default가 있는데 이건 if문의 else와 같은 역할을 한다. 어떤 케이스에도 해당되지 않는다면 default의 실행문이 실행된다. 어차피 마지막 실행이기 때문에 break를 쓰지 않아도 상관은 없다. 조건값에는 정수형(byte, short, int) 또는 문자형(char)과 jdk7 이상 버전에서는 문자열도 들어갈 수 있다.

switch 예시

// 학점을 구하는 switch문 예시
switch(score/10) {
        case 10 : 
//            grade = 'A';     break가 없으면 다음 case가 실행된다.
//            break;
        case 9 : 
            grade = 'A';
            break;
        case 8 : 
            grade = 'B';
            break;
        case 7 : 
            grade = 'C';
            break;
        case 6 : 
            grade = 'D';
            break;
        default :
            grade = 'F';
            break;
        }
        System.out.println("grade = "+grade);

score/10과 같이 인자로 수식이 들어갈 수도 있다.

// 월의 마지막일수 출력하기
switch(num) {
        case 1 :
        case 3 : 
        case 5 :
        case 7 :
        case 8 : 
        case 10 :
        case 12 :
            System.out.println(num+"월은 31일까지 있습니다.");
            break;
        case 2 :
            System.out.println(num+"월은 28일 또는 29일까지 있습니다.");
            break;
        case 4 :
        case 6 :
        case 9 :
        case 11 :
            System.out.println(num+"월은 30일까지 있습니다.");
            break;
        default :
            System.out.println("잘못 입력된 값입니다.");            
        }

같은 결과를 내는 case에는 break를 사용하지 않아 코드의 길이를 줄일 수도 있다.

반응형