switch ~ case 문
if와 else ~ if 문의 또 다른 형태
각 조건을 case의 값과 비교해서 결과가 true이면 조건을 빠져나간다.
switch의 조건 값의 타입은 수치형일 경우는 int이하만 가능 (long, 실수형 사용 불가)
문자열도 조건 값으로 가능.
ex)
switch(검색변수) {
case 조건1 :
조건1이 true시 실행할 문장;
break;
case 조건2:
조건2가 true시 실행할 문장;
break;
default:
나열된 case의 조건이 모두 false일때 기본적으로 실행되는 문장;
break;
}
예제 1.
<주민등록번호 뒷자리 첫번째 번호를 입력하고 태어난 년도와 성별이 무엇인지 출력>
Scanner sc = new Scanner(System.in);
System.out.println("주민등록번호 뒷자리 첫번째 번호 입력");
int year = 0, code; //년도, 성별코드
String sex; //성별을 저장
code = sc.nextInt();
switch (code) {
case 1:
case 2:
year = 1900;
break;
case 3:
case 4:
year = 2000;
break;
default:
System.out.println("잘못 입력했습니다.");
System.exit(0); //프로그램 종료
}
sex = code % 2 == 0 ? "여성" : "남성" ;
// 조건식 ? 참 : 거짓 ;
System.out.println("당신은 " + year + "년도에 태어난 " + sex + "입니다." );
[실행결과]
주민등록번호 뒷자리 첫번째 번호 입력
1
당신은 1900년도에 태어난 남성입니다.
예제 2.
<직급에 따라 올라갈 수 있는 층 입력>
- 직급은 사장, 부장, 과장, 대리, 사원, 알바 로 나눈다
- 직급이 높을수록 더 높은 층 까지 올라갈 수 있다
Scanner sc = new Scanner(System.in);
System.out.println("당신의 직급을 입력하세요.");
System.out.println("1.사장\t2.부장\t3.과장\t4.대리\t5.사원\t6.알바");
int input = sc.nextInt();
System.out.print("당신은 ");
switch (input) {
case 1:
System.out.print("6층");
break;
case 2:
System.out.print("5층");
break;
case 3:
System.out.print("4층");
break;
case 4:
System.out.print("3층");
break;
case 5:
System.out.print("2층");
break;
default:
System.out.print("1층");
break;
}
System.out.println(" 까지 올라갈 수 있습니다.");
[실행결과]
당신의 직급을 입력하세요.
1.사장 2.부장 3.과장 4.대리 5.사원 6.알바
4
당신은 3층 까지 올라갈 수 있습니다.
'JAVA' 카테고리의 다른 글
Do While (0) | 2021.07.06 |
---|---|
While (0) | 2021.07.06 |
스캐너 (Scanner) (0) | 2021.07.06 |
for (0) | 2021.07.06 |
Math.random (0) | 2021.07.06 |