Java/모두의 자바

Chapter 03-15 Switch 문

계란💕 2022. 2. 3. 21:56

03-15.1 Switch 문 (정수)

  Def) Switch 문: if문 처럼 조건에 따라서 처리를 제어할 수 있는 문법

  - 키워드 switch, case, default, break 를 사용한다.  

  - switch문은 블록 안에 case구문을 넣는다

  - if 문에서 else if 를 여러 개 사용한 것 처럼 case 구문도 여러 개 사용가능하다.

  Ex 1) value = 1인 경우

<hide/>

public class SwitchExam {
	public static void main(String[] args){
		int value = 1;
		
		switch(value){
			case 1:
				System.out.println("1");
			case 2:
				System.out.println("2");
			case 3:
				System.out.println("3");
			default: 
				System.out.println("그 외 다른 숫자");
		}
	}
}

  Note) 실행 결과

  - 1만 출력 되지 않고 2, 3, 그 외 다른 숫자까지 모두 출력 되었다.

  - 아래 문제에서 value 가 2일 때와 비교

 

 

  Ex 2) value = 2인 경우

<hide/>

public class SwitchExam {
	public static void main(String[] args){
		int value = 2;
		
		switch(value){
			case 1:
				System.out.println("1");
			case 2:
				System.out.println("2");
			case 3:
				System.out.println("3");
			default: 
				System.out.println("그 외 다른 숫자");
		}
	}
}

  Note) 실행 결과

  - Ex 1)과 다르게 1은 출력되지 않았다.

  - value 값은 2이므로 값이 같은 2부터 default까지만 출력된다.

  - 따라서, if else 처럼 값이 같은 하나만 출력하려면 키워드"break"를 이용한다.

 

  Ex 3) break 사용

<hide/>

public class SwitchExam {
	public static void main(String[] args){
		int value = 2;
		
		switch(value){
			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("그 외 다른 숫자");
		}
	}
}

  Note) 실행 결과: 2  

       - case 2 구문을 실행한 다음에 break 구문을 만나서 switch문을 빠져 나온다. 

       - 따라서, 해당하는 결과만 출력하기 위해 break를 쓴다.

 

03-15.2 Switch 문 (문자열)

  - 앞에서 switch 문에 정수만 넣었으나 문자열도 가능하다.

  Ex) 

<hide/>

public class SwitchExam {
	public static void main(String[] args){
		String str = "D";
		
		switch(str){
			case "A":
				System.out.println("A");
			break;
			case "B":
				System.out.println("B");
			break;
			case "C":
				System.out.println("C");
			break;
			default: 
				System.out.println("그 외 다른 문자");
		}
	}
}

 

03-15.3 Switch 문 실습 문제) month에 지금 몇 월 인지 숫자가 들어있다. 

           season -> 12 ~ 2월: "겨울",  3 ~ 5월: "봄", 6 ~ 8월: "여름", 9 ~ 11월: "가을" 값을 가지도록

   Ex)

<hide/>

import java.util.Calendar;
public class SwitchExam {
	public static void main(String[] args){
		int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
		String season = "";
		
		switch(month){
			case 12 : case 1 : case 2 : 
				season = "겨울";
			break;
			case 3 : case 4 : case 5 : 
				season = "봄";
			break;
			case 6 : case 7 : case 8 : 
				season = "여름";
			break;
			case 9 : case 10 : case 11 : 
				season = "가을";
			break;
		}
		System.out.println("지금은 "+month+"월이고, "+season+"입니다.");
	}
}

  Note) 실행 결과: 

  - case : 12  case  1 :  case 2 :  .. 으로 나타내면 중복되는 코드 없이 입력할 수 있다. 

  - season에 값을 넣을 때는 '='대입 연산자와 ""(쌍따옴표)를 필수로 이용한다.

 

'Java > 모두의 자바' 카테고리의 다른 글

Chapter 03-17 do-while 문  (0) 2022.02.04
Chapter 03-16 while 문  (0) 2022.02.04
Chapter 03-14 삼항 연산자  (0) 2022.02.03
Chapter 03-13 논리 연산자  (0) 2022.02.03
Chapter 03-12 if문  (0) 2022.02.03