조건문(2)(switch)/삼항연산자

Sweetwaffle·2023년 12월 17일

Java

목록 보기
4/4
post-thumbnail

📌조건문


◽Switch문

If문은 참(true)인지 거짓(false)인지에 따라 실행되는 문장이 결정되었다. Switch문은 변수와 case문의 입력값과 비교하여 매칭이 되는 값을 출력한다.


switch(변수) {
    case 입력값1: //변수값과 입력값이 일치하면 실행
         수행할 문장; 
         break; //위에 문장을 실행한 뒤, switch문을 종료
    case 입력값2:
     	수행할 문장;
         break;
    default: //변수의 값과 위에 입력값들이 다 불일치하면 실행(else와 같음)
    	 수행할 문장;
         break;
}

switch문 예제

	    int number = 1;
        String grade;

        switch (number) {
            case 1:
                grade = "A";
                break;
            case 2:
                grade = "B";
                break;
            case 3:
                grade = "C";
                break;
            case 4:
                grade = "D";
                break;
            default:
                grade = "F";
                break;
        }
        System.out.println("당신의 학점은 "+grade+"입니다.");
    }

number가 1이기 때문에, case의 입력값이 1인 수행문("A")이 출력되고, break를 만나 switch문을 빠져나가게된다.

그런데, 만약 break가 없다면 어떻게 될까?

▫ break

break는 변수값과 case문의 입력값이 일치하는 경우 문장을 수행하는데, 다음 case문으로 넘어가려는걸 break가 막아서 switch문 밖으로 빠져나가게 한다.


	 int number = 1;

     String grade;

        switch (number) {
            case 1:
                grade = "A";
               
            case 2:
                grade = "B";
               
            case 3:
                grade = "C";
                break;
            case 4:
                grade = "D";
                break;
            default:
                grade = "F";
                break;
        }
        System.out.println("당신의 학점은 "+grade+"입니다.");
    }

case "A"와 case "B"의 break를 삭제했다. 그러면 어떻게 될까?

number값이 1이므로 case 1과 일치하지만, break가 없어 막아주지 못하니 case 2로 넘어간다. 그런데 case 2도 break가 없어 case 3으로 넘어가게된다. case 3엔 break가 있어 switch문을 빠져나갈 수 있게됐고, case 3수행문("C")이 출력이된다.


◽ if문과 Switch

if문으로는 switch로 할 수 있는것들을 다 구현할 수 있지만, switch문은 if문으로 할 수 있는것들을 다 구현할 수 없고 일부만 할 수 있다. 그래서 if문이 switch문보다 쓰기 좋고 실제로도 if문이 더 많이 쓰인다. 그런데, 특정값에 따라 코드가 실행되어야 하는 상황에서는 switch가 더 편리하고 간결하게 사용될 수 있다.


◽ 삼항연산자


변수 = (조건식) ? (결과값이 true일때) : (결과값이 false일때);

삼항연산자는 항을 3개를 갖고있다. if 조건문처럼 조건식에 대하여 결과값이 참(true), 거짓(false)에 따라 달라진다. 그런데, 삼항연산자을 사용하면 if문보다 더욱 간결하게 작성할 수 있다.


if-else문일때


 int age = 10;

        if(age>=18){
            System.out.println("성인입니다.");
        }else{
            System.out.println("미성년자입니다.");
        }
    }

삼항연산자일때


int age = 10;

        System.out.println((age>=18)?"성인입니다":"미성년자입니다.");

그런데 이렇게 간결해졌다해서 if문보다 속도가 빠른것이 아니며, 간결해졌다는건 축약을 했다는것이기에 가독성이 떨어질 수 있다.

profile
초보개발자 개린이입니다.

0개의 댓글