본문 바로가기
프로그래밍 공부/Java

[lesson] Java 프로그래밍 언어 - switch

by Luna_lua 2021. 7. 26.
반응형

입력으로 사용자가 입력을 받을수 있다고 했었습니다. (Scanner 클래스와 메소드 사용)

2021.07.22 - [프로그래밍 공부/Java] - [lesson] Java 프로그래밍 언어 - 입력 클래스와 입력 메소드

 

[lesson] Java 프로그래밍 언어 - 입력 클래스와 입력 메소드

변수에 값을 항상 넣어 놓고 프로그램을 실행해야 할까요? 사용자가 직접 입력하게 할 수는 없을까요? 바로 입력 기능이 있습니다.!! 입력이란 커서가 깜박이고 있는 상태(콘솔창에 커서가 깜박

luna-lua.tistory.com

 

그렇다면 1~3까지 입력을 받고 그것들을 어떻게 구분 할 수 있을까요?

 

예상하시는 방법 중 괜찮은 방법이 있다면 이전에 배운 if문 즉 조건문 일 것입니다.

바로 아래처럼 쓰는것이죠

2021.07.25 - [프로그래밍 공부/Java] - [lesson] Java 프로그래밍 언어 - 조건식

 

[lesson] Java 프로그래밍 언어 - 조건식

오늘은 조건식을 알아보려 합니다. 조건식이란 참(true) 또는 거짓(false), 이 둘중에 하나가 나오는 연산식을 말합니다. 말 그대로 결과가 참, 거짓으로 나오는데 이는 논리형(boolean) 타입인거 아시

luna-lua.tistory.com

 

Scanner sc = new Scanner(System.in);
System.out.println("1~3중 원하는 숫자를 입력해 주세요");
int num = sc.nextInt();

if(num == 1) {
	System.out.println("1을 입력했을 때");
}else if(num == 2) {
	System.out.println("2를 입력했을 때");			
}else if(num == 3) {
	System.out.println("3을 입력했을 때");
}else {
	System.out.println("1~3이 아닌 다른것이 들어 왔을 때");			
}

//1~3중 원하는 숫자를 입력해 주세요
//2 입력
//2를 입력했을 때

그런데 이렇게 쓰면 숫자마다 또는 입력마다 다 if문을 사용해야 하는데 번거롭다고 느껴지지 않나요?

그럴때 쓰는것이 바로 switch문입니다.

 

그럼 스위치 문법은 아래와 같습니다.

switch(입력변수) {
    case 입력값1: ...
         break;
    case 입력값2: ...
         break;
    ...
    default: ...
         break;
}

 

문법만 봤을때는 생소할수 있지만 아래의 예시를 보면 아! 이거구나 싶어요~

 

Scanner sc = new Scanner(System.in);
// 일반 예제
		System.out.println("1~3중 원하는 숫자를 입력해 주세요");
		
		
		switch(sc.nextInt()) {
		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("위의 조건이 아닌 나머지를 입력 했을 때");
			break;
		}

// 숫자만이 아닌 다른 입력값도 구분이 된다는 예제

		System.out.println("a 또는 s를 입력하세요");
		
		switch(sc.nextLine()) {
		case "s" :
			System.out.println("s를 입력 했을 때");
			break;
		case "a" :
			System.out.println("a를 입력 했을 때");
			break;
		default :
			break;
		}

★Point! 

1. 기본문법에서 break를 사용하지 않으면 그 다음의 case로 넘어가니 꼭 하나의 케이스에서 끝내기 위해 break를 사용할것!

(다만 반대로 case10 : case 9 : case 8 :로 사용하여 10~8까지 입력했을때 하나의 기능을 작동하게 만들수도 있습니다.)

 

2. 숫자만이 아닌 문자, 문자열 등 입력한 값들로 case를 구분할 수 있습니다.

 

 

이 switch문은 입력된 값을 구분할때 반복문(if - else)보다 가독성이 좋습니다. 그러나 if로도 만들수 있기 때문에 사용하는 것에서는 작성자의 선택으로 정해지지만 switch문을 작성하고 if문으로 변경하려고 하면 용이하지만, if문부터 쓰면 바꾸기 어려우니 이점 참고하여 사용하면 좋을 것 같습니다.

반응형