22.33.23条件文switch


Javaに存在するもう一つの条件:switch


多くの場合の数を1つの条件式で処理する場合は、switch文を使用します.
表現は簡潔で分かりやすいが,if文より制約条件が多い.
switch(조건식) {
	case1:
    	// 조건식의 결과가 값1과 같을 때 수행될 문장
        //...
        break;
    case2:
    	// 조건식의 결과가 값2과 같을 때 수행될 문장
        //...
        break;
    case3:
    	// 조건식의 결과가 값3과 같을 때 수행될 문장
        //...
        break;
    default :
    	// 조건식의 결과와 일치하는 case문이 없을 때 수행될 문장
        //...
    }
  • がドアを開けたり、ドアの端を開けたりした場合、ドア全体から出ます.
  • 意図的に文を削除することがあります。

    switch (level) {
    	case 3:
        	grantDelete();	// 삭제 권한을 준다
        case 2:
        	grantWrite();	// 쓰기 권한을 준다
        case 1:
        	grantRead();	// 읽기 권한을 준다
    }
  • レベルが3の場合:削除、書き込み、および読み取り権限があります.
  • levelが2の場合:書き込み、読み取り権限があります.
  • レベルが1の場合:読み取り権限のみがあります.
  • こうそくじょうけん


  • 条件式の結果は整数または文字列でなければなりません.

  • case文の値は整数、定数のみで、繰り返すことはできません.
    int num, result;
    final int ONE = 1; // 정수 상수
    
    switch(result){ 
       case '1':		// OK, 문자 리터럴(정수 상수 49와 동일)
       case ONE:		// OK, 정수 상수
       case "YES":		// OK, 문자열 리터럴(jdk 1.7부터 적용)
       case num:		// 에러, 변수라서 불가
       case 1.0:		// 에러, 실수라서 불가
       }
  • 例文

    public static void main(String[] args) {
    		System.out.print("현재 월을 입력하세요.>");
    		
    		Scanner scanner = new Scanner(System.in);
    		int month = scanner.nextInt();	// 화면을 통해 입력받은 숫자를 month에 저장
    		
    		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:
    //			case 12: case 1: case 2:
    				System.out.println("현재의 계절은 겨울입니다.");
    		}
    	} // main의 끝
    結果値
    현재 월을 입력하세요.>10
    현재의 계절은 가을입니다.