본문 바로가기
IT Programming/Java

[Java] 08. 조건문 switch ~ case / break 문

by Euniieunii 2023. 3. 15.

if ~ else 문은 여러 개의 조건을 지정하려면 else if 문을 계속 생성하며 코드가 길어지는 반면,

switch~case 문은 비교적 코드가 쉽고 간단한게 장점이다.

 

if 문을 switch 문으로 변환할 수 있고, switch 문을 if 문으로 변환할 수 있지만

'모든' if 의 문장을 switch 로 바꿀 수는 없다.

if 는 비교연산자를 통해 범위를 지정하는 조건식을 작성 가능하지만

switch 문은 변수의 값 어떤 수치나 문자로 명시되는 경우로 분류되어 상대적 제약이 있기 때문이다.

 

switch (변수) {

	case 값1 : 실행문 1;
	case 값2 : 실행문 2;
	case 값3 : 실행문 3;
	default : 실행문 4;

}

- switch문에 break; 가 없는 경우 

switch 의 () 안에 변수를 지정한 후 변수가 값1 일 때 실행문1, 실행문2, 실행문3, default 를수행하고

값2 일 때 실행문2, 실행문3, default 를 수행하고 값3 일 때 실행문3, default 을 수행하고

값1, 값2, 값3 이 전부 아닐 때 default 의 실행문4 를 수행한다.

break; 가 없기 때문에 끊어서 수행이 되지 않고 case문이 전부 수행이 된다.

//등급에 따른 가격 책정의 경우(1등급~3등급)
int grade = 2;
int price = 7000; //기본 가격
switch (grade){
	case 1:
		price+= 1000;
	case 2:
	  price+= 1000;
  case 3:
	  price+= 1000;
  break;
}
System.out.println(grade + "등급 제품의 가격은 " + price + "원 입니다.");
// break를 마지막에 달았기 때문에 밑으로 합산되면서 내려옴 
//= 1등급:10000원, 2등급:9000원, 3등급:8000원

break 문 : 실행을 멈추고 블록 빠져나오기

switch문은 해당 조건에 맞는 case를 찾으면 실행문을 수행 후, 그 밑의 나머지 case들도 조건에 상관없이 실행한다.

switch문의 이런 흐름을 이용한 프로그래밍에는 물론 유용하겠지만, 때에따라 멈추고 싶을 때도 있을 것이다.

그럴 때 break문 을 사용한다.

break문은 조건 충족을 하는 코드를 실행한 후 조건문을 빠져나오는 역할을 한다. 

//1등 : 전액 장학금, 2등 : 반액 장학금, 3등 : 반액 장학금, 그 외 : 대상 아님.

int ranking = 1; // 1등 (등수는 정수이기에 int)
if (ranking == 1){
	System.out.println("전액 장학금 당첨");
} else if (ranking ==2) {
  System.out.println("반액 장학금 당첨");
} else if (ranking == 3) {
  System.out.println("반액 장학금 당첨");
} else {
  System.out.println("장학금대상 아님");
}
System.out.println("조회 완료 #1");

//Switch Case 문을 이용하면?
ranking = 4;
switch (ranking){
	case 1:
	  System.out.println("전액 장학금");
	  break;
  case 2:
	  System.out.println("반액 장학금");
	  break;
  case 3:
	  System.out.println("반액 장학금");
    break;
	default:
    System.out.println("대상 아님");
        }
System.out.println("조회 완료 되었습니다.");

 

댓글