자바언어

 

switch - case 조건문

switch - case문은 if - else문과 비슷한 조건 제어문이다.

하지만 switch문은 if문처럼 조건식이 true일 경우에 실행문을 실행하는 것이 아닌

변수의 값에 따라 실행문이 선택된다.

 

조건식의 변수의 값에 따라 해당  case위치로 이동해서 break를 만날 때 까지 코드를 실행한다.

 

if문은 조건식의 결과가 true, false 두 가지밖에 없기 때문에 경우의 수가 많아질수록 else - if를 반복적으로 추가해줘야하는 반면에 switch문은 변수의 값에 따라서 실행문이 결정되기 때문에 if문보다 간결하게 코드를 작성할 수 있다.

 

switch (조건식) {

 case 값 1:
  실행문1;
   break;

 case 값 2:
  실행문2;
   break;

 ...
 ...

 default:
  실행문;

}

 

default는 조건식이 모든 case가 아닐때 실행한다.

 

 


 

case에 사용 가능한 변수 타입

  • 정수 : byte, short, int, long, char
  • 문자열 :  String 
  • 열거형 자료 타입(enum)

 

정수를 사용한 swtich문 

int n = 17;

switch (n % 2) { 

case 0:

System.out.println("짝수");

break;

case 1:

System.out.println("홀수");

break;

}

실행 결과 =

홀수

 

*switch문에서는 실수 float, double을 사용할 수 없다.

double x = 1.0;

switch (x) {

case 1.0:

break;

case 2.0:

break;

 

 

문자열을 사용한 swtich문 

String time = "점심";

 

switch (time) {

case "아침":

System.out.println("breakfast");

break;

case "점심":

System.out.println("lunch");

break;

case "저녁":

System.out.println("dinner");

break;

default:

System.out.println("snack");

}

실행 결과 =

lunch

 

*switch문에서는 boolean(==)을 사용할 수 없다.

 

 

enum 타입을 사용한 switch문

열거형 자료 타입인 enum(enumeration type)은 한정된 값(상수)들만 갖는 데이터 타입이다.

public enum Season {

SPRING, SUMMER, FALL, WINTER;

}

이런식으로 개발자가 정의하여 타입을 만든 것이 enum이다.

 

Season s = Season.WINTER;

switch (s) {

case SPRING:

System.out.println("봄");

break;

case SUMMER:

System.out.println("여름");

break;

case FALL:

System.out.println("가을");

break;

case WINTER:

System.out.println("겨울");

break; 

(enum은 따로 정리를 할 예정이다.)

+ Recent posts