본문 바로가기

자바/뇌를 자극하는 JAVA

switch 조건문

switch 조건문

 switch 키워드도 if 키워드처럼 조건문을 만드는 데 사용됩니다. 하지만 switch 문은 if 문과는 달리 여러개의 조건을 설정할 수 있습니다.

 

switch 문의 전형적인 형식


switch (식) {

 case 값1 :

  명령문들

  break;

 case 값2 :

  명령문들

  break;

 case 값3

  명령문들

  break;

 default :

  명령문들

  break;

}


switch 문은 괄호 안에 있는 식을 계산하고 나서, 그 식의 결과와 동일한 값을 갖는 case 문을 찾아서 그 다음의 명령문을 실행합니다. 

그리고 명령문을 실행하다가 동일한 값을 찾고나면 break 문에서 switch 문 전체를 빠져나갑니다.

만약 괄호 안의 식과 일치하는 값을 갖는 case 문이 하나도 없으면 default 문 다음의 명령문들이 실행됩니다.


다음은 switch 문의 사용예를 보여주는 프로그램입니다.


class SwitchExample

 public static void main(String args[]) {

  int num = 3;

  switch (num) {

   case 1 :

    System.out.println("Good Morning, Java");

    break;

   case 2 :

    System.out.println("Good Afternoon, Java");

    break;

   case 3 :

    System.out.println("Good Evening, Java");

   default :

    System.out.println("Hello, Java");

    break;

  }

  System.out.println("Done.");

 }

}


실행결과

Good Evening, Java

Done.


break 문이 없는 switch 문

문법적으로 break문은 반드시 필요한 것이 아니기 때문에 break 문이 없어도 컴파일 에러는 발생하지 않습니다. 

하지만 그렇게 되면 그 다음에 오는 case 문의 명령문들이 연속적으로 실행 되기 때문에 의도하지 않은 결과를 초래할 수 있습니다.


class SwitchExample

 public static void main(String args[]) {

  int num = 3;

  switch (num) {

   case 1 :

    System.out.println("Good Morning, Java");

   case 2 :

    System.out.println("Good Afternoon, Java");

   case 3 :

    System.out.println("Good Evening, Java");

   default :

    System.out.println("Hello, Java");

  }

  System.out.println("Done.");

 }

}


이 프로그램의 switch 문에는 break 문이 없기 때문에 case3 명령문이 실행되고나서 다음 default 명령문도 실행되게 됩니다.

따라서 결과는 다음과 같습니다.


실행결과

Good Evening, Java

Hello, Java

Done.


하지만 경우에 따라서는 switch 문의 이런 성질을 유용하게 사용할 수 있습니다. 다음의 프로그램은 break 문을 적절히 생략해서 영문 대문자와 소문자에 대해 똑같은 처리를 하도록 만든 switch 문의 예를 보여줍니다.


둘 이상의 값에 대해 같은 처리를 하는 switch 문의 예

class SwitchExample

 public static void main(String args[]) {

  char ch = 'p';

   switch (ch)

    case 'A' :

    case 'a' :

     System.out.println("사과");

     break;

    case 'p' :

    case 'P' :

     System.out.println("배");

     break;

    case 'G' :

    case 'g' :

     System.out.println("포드");

     break;

   }

  }

}


실행결과


A와a, P와p, G와g에 대해서 같은 처리를 하는 switch문입니다.



'자바 > 뇌를 자극하는 JAVA' 카테고리의 다른 글

반복문을 빠져 나가는 break 문  (0) 2013.05.01
반복문  (0) 2013.04.28
if 조건문  (0) 2013.04.28
배열의 선언, 생성, 이용  (0) 2013.04.28
여러 가지 대입문  (0) 2013.04.28