728x90
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

+ Recent posts