JAVA

[프로그래머스 자바 입문] 삼항 연산자, swith 문

전감자(◔◡◔) 2022. 11. 22. 09:55

 삼항 연산자

int b1 = 5 > 4 ? 50 : 40;  

조건식 ? 피연산자1 : 피연산자2. 조건식이 true이면 피연산자1을, 조건식이 false면 피연산자2를 수행

 

✅ switch 문

  • switch문에서 사용하는 키워드는 switch, case, default, break 이다.
  • switch문
    switch(변수){
        case 값1 : 
            실행문; 
            break;
        case 값2 : 
            실행문; 
            break;  
        default;    
    }
    int value = 1;

    switch(value){
        case 1: 
            System.out.println("1");
            break;
        case 2:
            System.out.println("2");
            break;
        case 3 :
            System.out.println("3");
            break;
        default :
            System.out.println("그 외의 숫자");
    }

value의 값이 1일 경우 1을 출력하고, 2일 경우는 2를 출력하고, 3일 경우는 3을 출력하고, 그 외에는 그 외의 숫자가 출력된다.

    case 1: 
        System.out.println("1");
    case 2:
        System.out.println("2");
    case 3 :
        System.out.println("3");
    default :
        System.out.println("그 외의 숫자");

break를 제거하면 value가 1일 경우 1일 출력되고 switch문장을 빠져나가는 것이 아니라
1,2,3, 그외의숫자가 연속해서 실행된다. break문장이 있을 경우와 없을 경우를 확실하게 구분할 수 있어야 합니다.

 

JDK7이전에는 switch다음 괄호안에 정수타입의 변수만 올 수 있었습니다. 그런데 JDK7부터는 switch다음 괄호안에 문자열 타입의 변수도 올 수 있습니다.

    String str = "A";

    switch(str){
        case "A": 
            System.out.println("1");
        case "B":
            System.out.println("2");
        case "C" :
            System.out.println("3");
        default :
            System.out.println("그 외의 숫자");
    }

문자열의 값에 따라서 case블록의 내용이 출력되는 것을 알 수 있습니다.

 

프로그래머스 Switch 문 실습문제 

switch (month){
            case 1:
                season = "겨울";
                break;
            case 2:
            	season = "겨울";
            	break;
            case 3:
                season = "봄";
                break;
            case 4:
                season = "봄";
                break;
            case 5:
                season = "봄";
                break;
            case 6:
                season = "여름";
                break;
            case 7:
                season = "여름";
                break;
            case 8:
                season = "여름";
                break;
            case 9:
                season = "가을";
                break;
            case 10:
                season = "가을";
                break;
            case 11:
                season = "가을";
                break;
            case 12:
                season = "겨울";
                break;

처음엔 조건문 형태로 썼다가 그럼 일렬로 다 써야하나;; 하면서 통과했는데 

switch (month){
            case 3: case 4: case 5:        
                season="봄";
                break;
            case 12: case 1: case 2:
                season="겨울";
                break;
            case 6: case 7: case 8: season="여름"; break;
            case 9: case 10: case 11: season="가을"; break;

정답을 보니 한 줄에 여러개의 case들을 같이 쓰는 것도 가능하다는 걸 알았다. 

참고해두자