본문 바로가기
Back-End/Java

[Java] 조건문 switch~case문

by 찐코딩 2021. 8. 8.

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

   -식(정수 또는 char)을 사용해서 다중 분기하는 명령문
   -jdk 1.7버전부터는 식에 String 사용이 가능함


형식)

switch(식 또는 값) {
	case 값1 :
		값이 1일 때 실행문;
		break; // switch~case 블럭 탈출
	case 값2 :
		값이 2일때 실행문;
		break;
	case 값3 :
		값이 3일때 실행문;
		break;
	default :
		값1~값3 이외의 값이 들어온 경우 실행문;  // 생략도 가능함.

switch문에서 break문은 각 case문의 영역을 구분하는 역할

 

만일 break를 생략하면, case문 사이의 구분이 없어지므로

다른 break문을 만나거나, switch문 블럭 끝을 만날 때까지 나오는 모든 문장을 수행하기 때문에

반드시 빼먹지 않도록 해야한다.


예제)

import java.util.Scanner;

public class Ex10 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.print("1~3사이의 정수값을 입력하시오");
		int su=sc.nextInt();		
		switch(su) {
			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();		
	}
}

 


예제2)

1월부터 12월 중 키보드로 원하는 달을 입력받고, 해당 월의 마지막 일을 출력해보자.

import java.util.Scanner;  // 키보드로 값을 입력받기 위한 준비(호출)

public class Ex11 {

	public static void main(String[] args) {		
		Scanner sc=new Scanner(System.in);
        
		System.out.print("달(월)을 입력하세요.(숫자로만 기입)");
		int month=sc.nextInt();
        
		switch (month) {
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			System.out.println(month+"월의 마지막 날은 31일 입니다.");
			break;
		case 2:
			System.out.println(month+"월의 마지막 날은 28일입니다.(윤달 제외)");
			break;
		default: 
			System.out.println(month+"월의 마지막 날은 30일 입니다.");
			break;
		}
		sc.close();
	}
}

case문은 한 줄에 하나씩 쓰던, 한 줄에 붙여서 쓰던 상관없다.

(Ex. case 1: case 3: case 5: case 7: ....)

 

 


 

예제3)

화면을 통해 사장/전무/부장/차장/과장/대리/사원 중 하나의 직급을 입력받고, 해당 직급의 월급을 출력해보자.

 -jdk 1.7버전부터는 식에 String 사용이 가능한 점을 활용해서 풀어보자.

import java.util.Scanner;

public class Ex13 {

	public static void main(String[] args) {
		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("차장의 급여는 700만원 입니다.");
				break;	
			case "과장" :
				System.out.println("과장의 급여는 500만원 입니다.");
				break;	
			case "대리" :
				System.out.println("대리의 급여는 300만원 입니다.");
				break;	
			case "사원" :
				System.out.println("사원의 급여는 200만원 입니다.");
		}
		sc.close();
	}
}

 

'Back-End > Java' 카테고리의 다른 글

[Java] 조건문 for문  (0) 2021.08.08
[Java] 반복문 while, do while  (0) 2021.08.08
[Java] 조건문 if-else문, if-else if문  (0) 2021.08.08
[Java] 조건문 if문  (0) 2021.08.08
[Java] 이클립스에서 명령행 인자 입력방법  (0) 2021.08.08

댓글