Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 9 JShell에서 switch 문을 정의하고 사용하는 방법

JShell은 Java 9에서 새롭게 도입된 REPL(Read-Evaluate-Print-Loop) 기반의 대화형 도구입니다. 이 도구를 사용하면 간단한 문장을 실행하고, 그 결과를 즉시 평가하여 출력할 수 있어 코드를 빠르게 테스트하고 학습하는 데 매우 유용합니다.

switch 문은 여러 조건을 한 번에 검사할 수 있는 제어문으로, else 절과 유사한 방식으로 동작하며 일치하지 않는 경우를 대비한 default 처리도 지원합니다. 어떤 case와도 일치하지 않으면 default 절이 실행되며, 조건이 성공적으로 일치한 후에는 break 문을 사용해 switch 블록을 빠져나올 수 있습니다.

아래 코드 예제를 통해 JShell에서 switch 문을 정의하는 방법을 살펴보겠습니다.

예제 1: break 없이 switch 문 사용하기

jshell> int i = 10;
i ==> 10

jshell> switch(i) {
   ...>    case 1 : System.out.println("1");
   ...>    case 10 : System.out.println("10");
   ...>    default : System.out.println("default");
   ...> }
10
default

jshell> int i = 1;
i ==> 1

jshell> switch(i) {
   ...>    case 1 : System.out.println("1");
   ...>    case 10 : System.out.println("10");
   ...>    default : System.out.println("default");
   ...> }
1
10
default

위 예제에서 주목할 점은 break 문이 없기 때문에 일치하는 case 이후의 모든 문장이 순차적으로 실행된다는 것입니다. 예를 들어 i가 10일 때는 "10"과 "default"가 모두 출력되고, i가 1일 때는 "1", "10", "default"가 차례로 출력됩니다. 이러한 현상을 fall-through라고 부릅니다.

아래 코드 예제에서는 break 문을 포함한 switch 문을 JShell에서 정의하는 방법을 보여줍니다.

예제 2: break를 포함한 switch 문 사용하기

jshell> switch(i) {
   ...>    case 1 : System.out.println("1"); break;
   ...>    case 10 : System.out.println("10"); break;
   ...>    default : System.out.println("default"); break;
   ...> }
1

각 case 끝에 break 문을 추가하면, 조건이 일치한 해당 case만 실행된 후 switch 블록이 즉시 종료됩니다. 위 예제에서 i가 1이므로 "1"만 출력되고 나머지 case는 건너뛰게 됩니다.

정리

  • JShell은 Java 9부터 제공되는 REPL 도구로, 코드를 한 줄씩 입력하며 즉시 결과를 확인할 수 있습니다.
  • switch 문에서 break를 생략하면 fall-through 현상으로 인해 이후 case들이 연달아 실행됩니다.
  • 의도한 하나의 case만 실행되도록 하려면 반드시 break 문을 사용해야 합니다.