▶ switch
switch문은 if문과 동일한 조건문 중에 하나이다.
[표현법]
switch(동등비교를 할 대상자) {
case 값1 :
실행할 코드1;
// 앞으로 동등비교를 할 대상자 == 값1 일 경우 실행할 코드1을 실행한다.
break;
// 실행할 코드1을 실행하고 switch문을 빠져나갈 수 있게 break; 를 걸어준다.
// 브레이크문이 없다면 아래내용이 순차적으로 실행된다.
case 값2 : 실행할 코드2;
break;
case 값n : 실행할 코드n;
break;
default :
실행할 코드;
// if - else if문에서 else문과 같은 역할을 한다.
// 위의 값1, 값2, ... 값n까지 앞으로 동등비교를 할 대상자와 일치하지 않다면
// default 내의 실행할 코드가 실행된다.
// 마지막은 break문을 작성하지 않는다.
}
■ switch문과 if문의 차이점
if(조건식) => 조건식을 복잡하게 기술이 가능하다. 또 비교범위(대소비교) 제시할 수 있다.
switch 조건식x => 확실한 값만 조건으로 기술할 수 있다, 이 값을 가지고 동등비교만 수행한다.
※ switch문은 if문보다 자주 사용되지는 않지만, 사용하는 경우는 정말 어떤 동일한 연산결과가 수행되어야 하는 경우이다.
■ switch문의 장점
- case에 기록된 값을 통해 내가 원하는 코드위치로 바로 실행이 가능하다.
- if~else문의 경우 if의 조건식 결과가 true가 나오기 전까지 조건식검사를 계속 실행하므로 , switch문보다 연산효율이 떨어진다.
예제)
switch(num) {
case 1 :
System.out.println("빨간불");
break;
case 2 :
System.out.println("파란불");
break;
case 3 :
System.out.println("초록불");
break;
default:
System.out.println("잘못 입력했습니다.");
}
예를 들어 num이 1인 경우에는 "빨간불"이 결과 값으로 처리가 된다. 이때 num이 1 ~ 3 사이의 정수가 아니라면 맨 아래 default에 의해 "잘못 입력했습니다."가 결과값으로 처리된다.
■ break문 없이 switch 작성
break문이 없다면 아래로 코드가 순차적으로 작동되는데 이를 활용하는 경우가 있다.
예시) 사용자에게 등급별로 권한을 부여하는 프로그램
1 등급 : 관리 권한, 글쓰기 권한, 읽기 권한
2 등급 : 글쓰기 권한, 읽기 권한
3 등급 : 읽기 권한
Scanner sc = new Scanner(System.in);
System.out.print("등급을 입력해 주세요 : ");
int level = sc.nextInt();
switch(level) {
case 1: System.out.print("관리 권한 소유 ");
case 2: System.out.print("글쓰기 권한 소유 ");
case 3: System.out.print("읽기 권한 소유");
}
위의 코드와 같이 등급마다 중복되는 권한들이 있다면 위에 케이스마다 각 권한을 쓰지 않고 break문 없이 쭉 출력이 가능하다.
'JAVA' 카테고리의 다른 글
JAVA(9-2) 반복문(while) (0) | 2023.03.29 |
---|---|
JAVA(9-1) 반복문(For) (0) | 2023.03.27 |
JAVA(8-1) 제어문(if) (0) | 2023.03.24 |
JAVA(7-8) 연산자(삼항연산자) (0) | 2023.03.24 |
JAVA(7-6) 연산자(논리연산자) (0) | 2023.03.24 |