1. 객관식 연산자:switch
Java에는 할아버지(C++)에서 물려받은 또 다른 흥미로운 연산자가 있습니다. 우리는 진술에 대해 이야기하고 있습니다 switch
. 다중 선택 연산자라고 부를 수도 있습니다. 조금 번거로워 보입니다.
switch(expression)
{
case value1: code1;
case value2: code2;
case value3: code3;
}
표현식 또는 변수는 괄호 안에 표시됩니다. 표현식의 값이 이면 value1
Java 시스템이 실행을 시작합니다 code1
. 표현식이 와 같으면 value2
실행이 로 이동합니다 code2
. 표현식이 와 같으면 실행 value3
됩니다 code3
.
예:
암호 | 콘솔 출력 |
---|---|
|
|
2. break
진술switch
명령문 의 중요한 기능 switch
은 프로그램이 단순히 필요한 라인(필수 코드 블록)으로 이동한 다음 switch
. 의 값에 해당하는 코드 블록뿐만 switch
아니라 의 끝까지 모든 코드 블록이 switch
.
예:
암호 | 콘솔 출력 |
---|---|
|
|
36의 온도가 주어지면 프로그램은 명령문을 입력하고 switch
첫 번째 코드 블록(첫 번째 경우)으로 이동하여 실행한 다음 나머지 코드 블록을 유쾌하게 실행합니다.
하나의 코드 블록 (일치하는 경우와 관련된 코드 블록) 만 실행하려면 break
명령문으로 블록을 종료해야 합니다.
예:
암호 | 콘솔 출력 |
---|---|
|
|
해당 블록이 break 문이 있거나 없는 마지막 블록이므로 명령문 break
의 마지막 경우에 the를 생략할 수 있습니다 .switch
3. 기본 조치:default
또 다른 중요한 점. switch
괄호 안의 표현식과 일치 하는 사례가 없으면 어떻게 됩니까 ?
일치하는 케이스가 없으면 switch
명령문의 나머지 부분을 건너뛰고 프로그램은 명령문을 끝내는 중괄호 다음에 실행을 계속합니다 switch
.
즉, switch
명령문이 명령문의 else 분기처럼 작동 하도록 할 수도 있습니다 if-else
. 이렇게 하려면 default
키워드를 사용하십시오.
case
블록 의 s 중 어느 것도 switch
표현식의 값과 일치하지 않고 에 블록이 switch
있으면 default
기본 블록이 실행됩니다. 예:
암호 | 콘솔 출력 |
---|---|
|
|
4. 비교 switch
및if-else
문 switch
은 문과 다소 비슷하지만 if-else
더 복잡합니다.
문의 코드는 항상 switch
여러 if
문으로 다시 작성할 수 있습니다. 예:
스위치가 있는 코드 | if-else를 사용한 코드 |
---|---|
|
|
왼쪽의 코드는 오른쪽의 코드와 정확히 동일하게 작동합니다.
명령문이 각각의 경우에 다양한 복합 표현식을 포함하는 경우 여러 명령문 체인이 if-else
바람직합니다 .if
5. 문장에는 어떤 표현을 사용할 수 있나요 switch
?
case
모든 유형을 명령문 의 레이블 로 사용할 수 있는 것은 아닙니다 switch
. 다음 유형의 리터럴을 사용할 수 있습니다.
- 정수 유형:
byte
,short
,int
,long
char
String
- 모든
enum
유형
다른 유형은 케이스 레이블로 사용할 수 없습니다 .
enum
내부 문을 사용하는 예 switch
:
Day day = Day.MONDAY;
switch (day)
{
case MONDAY:
System.out.println("Monday");
break;
case TUESDAY:
System.out.println("Tuesday");
break;
case WEDNESDAY:
System.out.println("Wednesday");
break;
case THURSDAY:
System.out.println("Thursday");
break;
case FRIDAY:
System.out.println("Friday");
break;
case SATURDAY:
System.out.println("Saturday");
break;
case SUNDAY:
System.out.println("Sunday");
break;
}
enum
참고: inside a 문을 사용하는 경우 레이블 switch
의 각 값 앞에 클래스 이름을 쓸 필요가 없습니다 case
. 그냥 값을 쓰는 것으로 충분합니다.
GO TO FULL VERSION