[TIL][Java][2023-11-13] if문과 switch문 비교

2023. 11. 13. 19:56TIL/Java

 

이번 글에서는 앞서 정리했던 두 가지 조건문 if문과 switch문이 어떻게 다른지 간단히 비교를 해보려고 한다.

 

 

차이점 1 : 복합조건

if문은 복합조건을 지원한다.

  • 복합조건 : 괄호 안에 조건 여러 개를 지정하여 조건문을 수행할 수 있다.

switch문은 피연산자 한개에 대한 조건만 지원한다.

 

 

차이점 2 : 코드중복

if문은 상대적으로 코드중복이 많고, switch문은 코드중복이 적다.

 

 

 

코드를 통해 비교해 보자.

// switch문 정리 때 사용하였던 예제코드를 if문으로 바꿔보았다.


// switch 

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); // 8월 출력



// 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); // 8월 출력