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

Java에서 문자열에 switch 문 구현하기 – 알고리즘과 예제 코드

이 글에서는 Java에서 문자열(String)에 switch 문을 적용하는 방법을 알아봅니다. switch 표현식은 한 번만 평가되며, 그 결과값이 각 case의 값과 순서대로 비교됩니다. 문자열은 하나 이상의 문자를 담는 자료형으로, 큰따옴표(" ")로 묶어 표현합니다.

동작 원리

switch 문은 조건값을 한 번 평가한 뒤 각 case 라벨과 비교하고, 일치하는 case의 코드 블록을 실행합니다. 각 case 끝에는 break 문을 두어 다음 case로 넘어가는 것을 방지해야 하며, 일치하는 값이 없으면 default 블록이 실행됩니다. 참고로 Java 7부터 switch 문에서 문자열 사용이 공식적으로 지원됩니다.

문제 정의

입력으로 주어진 문자열에 따라 서로 다른 메시지를 출력하는 프로그램을 작성해 보겠습니다.

입력 예시 −

Input string: Java

기대 출력 −

Using switch cases:
We shall use Java for our coding

알고리즘

1단계 - 시작
2단계 - input_string이라는 이름의 문자열 변수를 선언한다.
3단계 - 값을 정의한다.
4단계 - 입력 문자열을 검사하는 switch 문을 정의하고, 일치하는 case에 해당하는 문장을 출력한다.
5단계 - 결과를 화면에 표시한다.
6단계 - 종료

예제 1 – main 함수에서 직접 구현

아래 예제에서는 모든 연산을 'main' 함수 안에 함께 작성했습니다.

public class Demo {
   public static void main(String[] args) {
      String input_string = "Java";
      System.out.println("The string is defined as: " +input_string);
      System.out.println("Using switch cases: ");
      switch (input_string) {
         case "Scala":
            System.out.println("We shall use Scala for our coding");
            break;
         case "Python":
            System.out.println("We shall use Python for our coding");
            break;
         case "Java":
            System.out.println("We shall use Java for our coding");
            break;
         default:
            System.out.println("The string is undefined");
      }
  }
}

출력

The string is defined as: Java
Using switch cases:
We shall use Java for our coding

예제 2 – 객체 지향 방식으로 함수 분리

아래 예제에서는 switch 로직을 별도의 함수로 분리하여 객체 지향 프로그래밍 스타일로 작성했습니다. 이렇게 하면 코드의 재사용성과 가독성이 향상됩니다.

public class Demo {
   static void switch_case(String input_string){
      System.out.println("Using switch cases: ");
      switch (input_string) {
         case "Scala":
            System.out.println("We shall use Scala for our coding");
            break;
         case "Python":
            System.out.println("We shall use Python for our coding");
            break;
         case "Java":
            System.out.println("We shall use Java for our coding");
            break;
         default:
            System.out.println("The string is undefined");
      }
  }
  public static void main(String[] args) {
      String input_string = "Java";
      System.out.println("The string is defined as: " +input_string);
      switch_case(input_string);
  }
}

출력

The string is defined as: Java
Using switch cases:
We shall use Java for our coding

알아두면 좋은 점

  • switch 문의 문자열 비교는 대소문자를 구분합니다. 예를 들어 "Java"와 "java"는 서로 다른 값으로 취급됩니다.
  • 비교 대상 문자열이 null이면 NullPointerException이 발생할 수 있으므로, switch 문 앞에서 null 여부를 먼저 확인하는 것이 안전합니다.
  • case 블록 마지막에 break 문을 생략하면 다음 case까지 연달아 실행되는 fall-through 현상이 발생하므로 주의해야 합니다.
  • Java 7 미만 버전에서는 switch 문에 문자열을 사용할 수 없으며, if-else 문으로 대체해야 합니다.