switch - case 문은 'sw' + 자동완성을 통해서
사용할 수 있습니다.
주로 권한 설정 등에 쓰이는데
비교 조건이 특정한 값이나 문자열인 경우
case 안에 코드를 실행하고
break; 를 이용해서 각 조건이 만족하면
switch 문이 깨지도록 합니다.
형식을 살펴볼까요?
switch (변수 or 식(딱 떨이지는 값에 대한 식)) {
case value(변수 or 식에대한 값):
break;
default:
break;
}
case 구분은 :으로 구분짓고
케이스의 값이 value일 때
해당 영역의 코드를 실행합니다.
그리고 break를 만나면 해당 switch문을 꺠버리고
다음 코드로 넘어가게 됩니다.
default구문은 case의 식이 모두 성립하지 않을 떄
실행하게 됩니다.
예제를 살펴보겠습니다.
Scanner sc = new Scanner(System.in);
System.out.println("x :");
int x = sc.nextInt();
System.out.println(x);
switch (x) {
case 1:
System.out.println("ㅋ");
break;
case 2:
System.out.println("ㅎ");
default:
System.out.println("졸려");
break;
}
switch 오른쪽에 변수 이름을 넣고
case 옆에는 해당하는 변수의 값을 넣으면 됩니다.
잘 출력되는 모습입니다.
switch - case 문은 값을 만족할 떄
break; 코드를 쓰지 않으면
다른 값에 해당하는 코드까지
실행하게 됩니다.
이 특성을 이용해서 예제를 풀어보겠습니다.
//직업
// DBA (상위 데이터베이스 관리자)
// 전원관리
// 백업/복구
// 명령어로 CRUD
// 서비스 활용
// DBP (데이터베이스 프로그래머)
// 명령어로 CRUD
// 서비스 활용
// DBU (사용자)
// 서비스 활용
3가지 직업중 한 개를 입력받고
해당 직업이 하는 일을 출력하는 예제입니다.
switch (job) {
case "DBA":
System.out.println("전원관리\n백업 복구\n");
case "DBP":
System.out.println("명령어로 CRUD");
case "DBU":
System.out.println("서비스 활용");
break;
default:
System.out.println("다시 입력해주세요.");
break;
}
이때 DBA가 하는 일이
전원 관리 / 백업 복구/ 명령어로 CRUD / 서비스 활용
이렇게 4가지가 있는데
만약 값에 해당하는 코드가 중복이 있다면
break;를 쓰지 않음으로써
중복되는 코드를 나열할 수 있습니다.
위 코드에서는
전원 관리 / 백업 복구 만 출력되는 것이 아니라
명령어로 CRUD / 서비스 활용까지 출력될 것입니다.
출력을 확인해볼까요?
프린트문의 전원관리 / 백업 복구만이 아닌
case문의 전체 코드를 출력합니다.
따라서 이 break; 코드를 적절히 활용하여
코드를 효율적으로 짤 수 있습니다.
'Java > 이론' 카테고리의 다른 글
[Java] 이중 반복문 (0) | 2024.11.28 |
---|---|
[Java] 반복문 (0) | 2024.11.27 |
[Java] 조건문 (0) | 2024.11.26 |
[Java] 재귀적 호출(recursive call) - 등차수열 (0) | 2024.11.26 |
[Java] 함수의 구조 (2) | 2024.11.25 |