1. 객관식 연산자:switch

Java에는 할아버지(C++)에서 물려받은 또 다른 흥미로운 연산자가 있습니다. 우리는 진술에 대해 이야기하고 있습니다 switch. 다중 선택 연산자라고 부를 수도 있습니다. 조금 번거로워 보입니다.
switch(expression)
{
case value1: code1;
case value2: code2;
case value3: code3;
}
표현식 또는 변수는 괄호 안에 표시됩니다. 표현식의 값이 이면 value1Java 시스템이 실행을 시작합니다 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 charString- 모든
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