본문 바로가기

Java/이론

[Java] switch - case 문

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