자바 언어 기초 - 조건문과 반복문
switch 문
한모로그
2023. 1. 15. 14:52
변수값에 따라 case를 실행하는 switch 문
- switch 문: 괄호 안의 변수값에 따라 해당 case로 가서 실행문을 실행.
- 변수값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행하며, default 생략 가능
출처, 이것이 자바다
package ch04.sec03;
/*
* IfDiceExample 클래스의 주사위 예제를 switch문으로 변환
*/
public class SwitchExample {
public static void main(String[] args) {
int num = (int)(Math.random() * 6) +1;
//num변수의 값이 1~6
switch(num) {
case 1:
System.out.println("1번이 나왔습니다.");
break;
case 2:
System.out.println("2번이 나왔습니다.");
break;
case 3:
System.out.println("3번이 나왔습니다.");
break;
case 4:
System.out.println("4번이 나왔습니다.");
break;
case 5:
System.out.println("5번이 나왔습니다.");
break;
/*case 6:
System.out.println("6번이 나왔습니다.");
break;*/
default :
System.out.println("6번이 나왔습니다.");
}
}
}
- break는 다음 case를 실행하지 않고 switch 문을 빠져나갈 때 사용. break가 없다면 다음 case가 연달아 실행되는데, 이때는 case 값과는 상관없이 실행된다.
package ch04.sec03;
/*
* break 키워드 사용안했을 경우 switch 예제
*
* 직장인의 출근진행부터 프로세스를 시간대로 출력하기.
*/
public class SwitchNOBreakCaseExample {
public static void main(String[] args) {
//8 <= x < 12 - 8, 9, 10, 11
int time = (int)(Math.random() * 4 ) + 8;
System.out.println("[현재시간: " + time + " 시]");
switch(time) {
case 8:
System.out.println("출근합니다.");
case 9:
System.out.println("회의를 합니다.");
case 10:
System.out.println("업무를 봅니다.");
default:
System.out.println("외근을 나갑니다.");
}
}
}
- switch 문의 괄호에는 정수 타입(byte, char, short, int, long)과 문자열 타입(String) 변수를 사용할 수 있다.
package ch04.sec03;
/*
char 데이터타입을 사용한 switch 예제
- 변수의 값이 대소문자 구분없이 사용하는 경우
*/
public class SwitchCharExample {
public static void main(String[] args) {
char grade = 'b';
switch(grade) {
case 'A':
case 'a':
System.out.println("우수 회원입니다.");
break;
case 'B':
case 'b':
System.out.println("일반 회원입니다.");
break;
default:
System.out.println("손님입니다.");
}
}
}