[JAVA] Switch 문

Estar·2024년 7월 25일

JAVA

목록 보기
2/5

Switch - Case 문

처리해야 하는 경우의 수가 많을 때 유용하다.
대신 조건이 많은건 불가능...

switch (조건식) {
	case1 :
    //조건식의 결과가 값1과 같다면 case 값1 프린트
    	break;
    case2 :
    //조건식의 결과가 값2와 같다면 case 값2 프린트
    	break;
    defalut :
    // case 값1, case 값2에 없다면 쓰임 -> 
    반드시 써야 하는 건 아님
}
  1. 조건식을 계산한다.
  2. 조건식의 결과와 일치하는 case 문으로 이동한다.
  3. 이후의 문장들을 수행한다.
  4. break 문이나 switch문의 끝을 만나면 switch문 전체를 빠져나간다.
  5. 근데 없다면 default로 넣을 수 있는데
    반드시 쓸 필요는 없다.
    각 case엔 break를 걸어주어야 하며
    안걸면 case 1,2,3,4 다 나올 수 있다는 점!
if(조건식1){
	//조건식 1의 연산결과가 참일 때 수행
}else if(조건식2){
	//조건식 2의 연산결과가 참일 때 수행
}else if(조건식3){
	//조건식 3의 연산결과가 참일 때 수행
}else{
	// 조건식이 참인게 없다면 else
}

Switch vs If

둘 다 조건문이라는 점에선 공통점을 가지지만
Switch문은 조건문에 해당하는 case를 가져가고
If 문은 else if문인 경우엔 조건문이 여러개 생길 수 있다.
즉 Switch문은 연산이 줄어서 간단하다.

Switch문의 제약조건

  1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
  2. case문의 값은 정수, 상수(문자 포함), 문자열 가능, 중복되면 안되고, 변수는 X
int num, result;
final int ONE = 1;
switch(result) {
	case '1':		문자 리터럴 가능
    case ONE :		정수, 상수 가능
    case "YES":		문자열 리터럴 가능
    case num:		변수는 불가
    case 1.0:		실수도 불가

Switch 문 예시

// case에 숫자가 들어가는 예시입니다.
package Java_if;

import java.util.Scanner;

public class Swith_num {
   public static void main(String[] args) {
       System.out.println("현재는 몇월인가요?");
       Scanner scanner = new Scanner(System.in);
       int month = scanner.nextInt();

       switch(month){
           case 3: case 4: case 5:
               System.out.println("현재 계절은 봄입니다.");
               break;
           case 6: case 7: case 8:
               System.out.println("현재 계절은 여름입니다.");
               break;
           case 9: case 10: case 11:
               System.out.println("현재 계절은 가을입니다.");
               break;
           default:
               System.out.println("현재 계절은 겨울입니다.");


       }

   }
}
//case에 열거형(enum)상수가 들어간 예시
package Java_if;

public class Switch_day {
    public enum Day {
        MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
    }

    public static void main(String[] args) {
        Day today = Day.WEDNESDAY;

        switch (today) {
            case MONDAY:
                System.out.println("Today is Monday");
                break;
            case TUESDAY:
                System.out.println("Today is Tuesday");
                break;
            case WEDNESDAY:
                System.out.println("Today is Wednesday");
                break;
            case THURSDAY:
                System.out.println("Today is Thursday");
                break;
            case FRIDAY:
                System.out.println("Today is Friday");
                break;
            case SATURDAY:
                System.out.println("Today is Saturday");
                break;
            case SUNDAY:
                System.out.println("Today is Sunday");
                break;
        }
    }
}
profile
개발자를 꿈꿔요

0개의 댓글