JAVA 3강_3_switch ~ case 문

열라뽕따히·2024년 1월 28일

JAVA

목록 보기
14/79

switch ~ case 문 : 분기문(조건문)

  • 식(정수 또는 char) 을 사용하여 여러 개의 조건 중 하나를 선택하는 명령문
  • jdk 1.7버전 부터는 식에 String 사용이 가능함
  • 형식 :
switch(식 또는 값 또는 변수){
       case1 :1 일 때 실행문;
                        break;  // switch-case 블럭 탈출
       case2 :2 일 때 실행문;
                        break;  // switch-case 블럭 탈출
       case3 :3 일 때 실행문;
                        break;  // switch-case 블럭 탈출
       default :1 ~3 이외의 값이 들어온 경우 실행문;
 *                        // default 문장은 생략도 가능




============================코드============================

Scanner sc = new Scanner(System.in);
		
	System.out.print("1 ~ 3 사이의 숫자 중에서 하나를 입력하세요. : ");
		
	int num = sc.nextInt();
		
		switch(num) {
		case 1 : 
			System.out.println("입력 받은 숫자는 1 입니다.");
			break;
		case 2 :
			System.out.println("입력 받은 숫자는 2 입니다.");
			break;
		case 3 :
			System.out.println("입력 받은 숫자는 3 입니다.");
			break;
		default :
		  	System.out.println("1 ~ 3 이외의 숫자가 입력 되었습니다.");
		
		}
		
		sc.close();

============================실행============================











============================코드============================

Scanner sc = new Scanner(System.in);
		
	System.out.print("정수 하나를 입력하세요. : ");
		
	int su = sc.nextInt();
		
		switch(su % 5) {
		case 0 :
			System.out.println("입력 받은 " + su + "는 5의 배수입니다.");
			break;
		case 1 :
			System.out.println("입력 받은 " + su + "는 5의 배수가 아닙니다. 나머지가 1입니다.");
			break;
		case 2 :
			System.out.println("입력 받은 " + su + "는 5의 배수가 아닙니다. 나머지가 2입니다.");
			break;
		case 3 :
			System.out.println("입력 받은 " + su + "는 5의 배수가 아닙니다. 나머지가 3입니다.");
			break;
		case 4 :
			System.out.println("입력 받은 " + su + "는 5의 배수가 아닙니다. 나머지가 4입니다.");
			break;
		
		}
    sc.close();

============================실행============================









  • 단일 문자 출력 시




============================코드============================

Scanner sc = new Scanner(System.in);
		
	System.out.print("알파벳 a ~ c 사이의 단어 중에서 한 글자 입력 : ");
		
	char fruit = sc.next().charAt(0);    // 문자열 중에 맨 앞에 있는 하나를 가져와라!
		
		switch(fruit) {
		case 'a' :       // --> 단일문자형이기 때문에 "가 아닌 < ' >가 들어감!
			System.out.println("선택한 과일은 apple 입니다.");
			break;
		case 'b' : 
			System.out.println("선택한 과일은 banana 입니다.");
			break;
		case 'c' : 
			System.out.println("선택한 과일은 cherry 입니다.");
			break;
		default : 
			System.out.println("선택한 과일이 업습니다.");
			break;
		}
		
 sc.close();

============================실행============================




***단일문자형은 ( ' ) 사용임을 주의해야 함!!





  • 문자 출력 시




============================코드============================

Scanner sc = new Scanner(System.in);
		
	System.out.print
				("직급(사장/전무/부장/차장/과장/대리/사원) 중 하나의 직급을 선택하세요. : ");
		
	String position = sc.next();
		
		switch(position) {
		case "사장" :
			System.out.println("사장의 월급은 1,000 만원 입니다.");
			break;
		case "전무" :
			System.out.println("전무의 월급은 800 만원 입니다.");
			break;
		case "부장" :
			System.out.println("부장의 월급은 650 만원 입니다.");
			break;
		case "차장" :
			System.out.println("차장의 월급은 500 만원 입니다.");
			break;
		case "과장" :
			System.out.println("과장의 월급은 400 만원 입니다.");
			break;
		case "대리" :
			System.out.println("대리의 월급은 300 만원 입니다.");
			break;
		case "사원" :
			System.out.println("사원의 월급은 200 만원 입니다.");
			break;
		}
		
		System.out.println();

============================실행============================





  • if ~ else if 문으로 만들어보자!




============================코드============================

// 다중 if ~ else문으로 처리를 해보자
		if(position.equals("사장")) {      // *주의해야함*  if(position == "사장") --> 가능한가? 답은 X (== 은 숫자를 비교하기 위한 연산)
			System.out.println("사장의 월급은 1,000 만원 입니다.");
		}else if(position.equals("전무")){
			System.out.println("전무의 월급은 800 만원 입니다.");
		}else if(position.equals("부장")) {
			System.out.println("부장의 월급은 650 만원 입니다.");
		}else if(position.equals("차장")) {
			System.out.println("차장의 월급은 500 만원 입니다.");
		}else if(position.equals("과장")) {
			System.out.println("과장의 월급은 400 만원 입니다.");
		}else if(position.equals("대리")) {
			System.out.println("대리의 월급은 300 만원 입니다.");
		}else if(position.equals("사원")) {
			System.out.println("사원의 월급은 200 만원 입니다.");
		}else {
			System.out.println("없는 직급입니다.");
		}
		
		
 sc.close();

============================실행============================

*** if (변수 == "사장")은 불가능!! ==은 숫자를 위한 연산이기 때문에 문자 출력은 if (변수.equals(""))로 처리함

0개의 댓글