Java : Control flow statements II

m_ngyeong·2024년 10월 14일
0

Java

목록 보기
8/14
post-thumbnail

☕️ Java

Multiple conditions: switch

변수의 값에 따라 다른 동작을 수행하는 프로그램을 작성해야 한다고 가정해보자. 예를 들어, 메뉴에서 동작을 선택한다. 아래의 코드와 같이 여러 분기가 있는 조건문을 사용할 수 있다.

int action = ...; // a certain value from 1 to 4
        
if (action == 1) {
    System.out.println("Starting a new game...");
} else if (action == 2) {
    System.out.println("Loading a saved game");
} else if (action == 3) {
    System.out.println("Displaying help...");
} else if (action == 4) {
    System.out.println("Exiting...");
} else {
    System.out.println("Unsuitable action, please, try again");
}

이 코드로 작업 처리가 가능하나, 조건문에 분기가 많으면 가독성에 좋지 못하다.
이럴 경우에는 swich문을 활용하여 작업을 처리할 수 있다.

Three keywords: switch, case, and default

swich문은 단일 변수의 값을 기준으로 여러 케이스 중에서 선택하는 방법을 제공한다. 변수는 정수(integer number), 문자(character), 문자열(string), 열거형(enumeration)일 수 있다.

The general form of the switch statement

switch (variable) {
    case value1:
        // do something here
        break;
    case value2:
        // do something here
        break;
    
    //... other cases
    
    case valueN:
        // do something here
        break;
    default:
        // do something by default
        break; // it can be omitted
}

swich 문을 사용하기 위해선 swichcase 키워드가 필요하다. breakdefault 키워드는 선택사항이다.

  • break : 하나의 케이스가 아닌 swich문 전체를 실행 중지.
  • default : 변수 값과 일치하는 case가 없을 경우 실행.

swich 문을 사용하면 이전 예제는 다음과 같다.

switch (action) {
    case 1:
        System.out.println("Starting a new game...");
        break;
    case 2:
        System.out.println("Loading a saved game");
        break;
    case 3:
        System.out.println("Displaying help...");
        break;
    case 4:
        System.out.println("Exiting...");
        break;
    default:
        System.out.println("Unsuitable action, please, try again");
}

An example with "zero", "one" and "two"

다음 코드는 정수의 이름이나 기본 텍스트를 출력한다. 이 switch 문에는 세 개의 기본 케이스와 하나의 기본 케이스가 있다.

int val = ...;
switch (val) {
     case 0:
         System.out.println("zero");
         break;
     case 1:
         System.out.println("one");
         break;
     case 2:
         System.out.println("two");
         break;
     default:
         System.out.println("The value is less than zero or greater than two");
} 
  • val의 값이 0일 경우, case 0 구문이 실행됨.
  • val의 값이 10일 경우, default 구문이 실행됨.

case 문에서 break 키워드를 잊으면 컴파일러는 오류로 간주하지 않음

case1break 키워드가 없고 val의 값이 1을 할당하는 프로그램은 다음과 같다.

int val = 1;
switch (val) {
     case 0:
         System.out.println("zero");
         break;
     case 1:
         System.out.println("one");
     case 2:
         System.out.println("two");
         break;
     default:
         System.out.println("The value is less than zero or greater than two");
} 

# 결과
one
two
  • break 키워드가 없을 경우 해당하는 case문을 찾아도 switch가 종료되지 않고 break 를 만날 때 까지 다음 case문을 실행함.


참고문헌,
https://hyperskill.org/tracks/8

profile
사용자 경험 향상과 지속적인 성장을 추구하는 프론트엔드 개발자 ʚȉɞ

0개의 댓글