본문 바로가기
BackEnd/Java

[Java] 스위치 Switch

by summer_light 2021. 7. 1.

스위치(Switch)

switch~case문

if와 else~if의 또 다른 형태이다. case의 key값과 비교해서 일치한 case만 실행한다.

값을 보여주기 때문에 개발하기 편한 장점이 있다. 그러나 if문 처럼 범위를 지정할 수 없다는 단점 또한 존재한다.

switch의 조건 값의 타입은 수치형일 경우는 int 이하, char, String이 가능하다. 그러나 long, 실수는 불가능하다.

 

		switch(검색변수) {
		case 조건1:
			조건이 true 시 실행할 문장;
			break;
		case 조건2:
			조건2가 true시 실행할 문장;
		default:
			나열된 case의 조건이 모두 false일 때
			기본적으로 실행되는 실행문장;
			break; 
		}

 

와 같은 형태가 기본 형태이며, case 안에서도 if문, for문 모두 사용 가능하다.

 

 


 

예제 01. 숫자 판별

package May24;

public class Switch01 {

	public static void main(String[] args) {
		int number = 5;
		switch(number) {
			case 0:
				System.out.println("number는 0입니다.");
				break;
		
			case 5:
				System.out.println("number는 5입니다.");
				break;
			
			default:
				System.out.println("number는 0과 5가 아닙니다.");
				break;
		}
	}

}

출력결과:

number는 5입니다.

예제 02. 출입가능한 건물 층

break;이 없으면 다음 break이 나오는 case까지 계속 이어진다.

package May24;

import java.util.Scanner;

public class Switch02 {

	public static void main(String[] args) {
		
		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층, ");
			
		case 2:
			System.out.print("5층, ");

		case 3:
			System.out.print("4층, ");
			
		case 4:
			System.out.print("3층, ");
			
		case 5:
			System.out.print("2층, ");
			
		default:
			System.out.println("1층입니다.");

		}


	}

}

출력결과:

당신의 직급을 입력하세요.

1.사장 2.부장 3.과장 4.대리 5.사원 6.알바

3

올라갈 수 있는 층은 4층, 3층, 2층, 1층입니다.

예제 03. 주민등록번호 성별 코드

break;이 없으면 다음 break이 나오는 case까지 계속 이어진다.

package May24;

import java.util.Scanner;

public class Switch03 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		System.out.print("주민등록번호 중 성별 코드 입력 _");
		
		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(code);//프로그램 종료
		}
		
		sex = code % 2 == 0 ? "여성" : "남성";
		
		System.out.print("당신은 " + year + "년도에 태어난 ");
		System.out.println(sex + "입니다.");
	}

}

출력결과:

주민등록번호 중 성별 코드 입력 _2

당신은 1900년도에 태어난 여성입니다.

'BackEnd > Java' 카테고리의 다른 글

[Java] 배열 Array  (0) 2021.07.01
[Java] 무한 반복문 While, Do While  (0) 2021.07.01
[Java] 반복문 for  (0) 2021.07.01
[Java] 조건문 if  (0) 2021.07.01
[Java] 연산자  (0) 2021.07.01

댓글