티스토리 뷰

IT/Java

switch case문

오예봉봉 2020. 4. 26. 23:13


switch문 개념

switch문은 if문 또는 if else문과 마찬가지로 조건을 만족하는 코드를 실행 시키는 구조라는 점에서 아주 비슷하다. 그러나 switch문은 조건을 충족하여 실행 되는 실행 문의 수가 많을 때 주로 사용한다.


switch문 형식

switch문은 일반적으로 switch문 , case문 , default문 과 break문 으로 구성되어 아래와 같은 형식으로 사용 됩니다.

switch (조건)
{
case 1:  //콜론
   실행 문 1 ;
   break ;
case 2:
   실행 문 2 ;
   break ;
case 3:
   실행 문 3;
   break ;
default:  //콜론
   실행 문 
   break ;
}


case , default 와 같은 "레이블" 뒤에는 세미콜론이 아니라 콜론 기호를 사용하여야 합니다.

switch문의 조건을 충족하는 case 의 실행 문이 실행 됩니다. 

그 후에 break문에 의해서 switch 블록을 탈출 합니다.그러나, 조건을 만족하는 case 의 실행 문장이 존재 하지 않는다면 default 문의 실행 문이 수행되어 집니다. 

아래 예제를 봅시다.


class Example

{

public static void main(String[ ] args)

{

int number=3;

switch(number)

{

case 1:

System.out.println("number는 1 입니다.");

                break;


case 2:

System.out.println("number는 2 입니다.");

                break;


case 3:

System.out.println("number는 3 입니다.");

                break;

default:

System.out.println("number는 1,2,3 은 아니 예요.");

                break;

}

System.out.println("종료 합니다.");

}

}


변수 number가 3 이므로 case 3의 실행문 이 실행 됩니다.

그리고 break문에 의해 switch 블록을 빠져 나와 순차적으로 실행 됩니다.

따라서 실행 결과는 아래와 같습니다.


number는 3입니다.

종료 합니다.


만약 number가 2 였다면 위와 같은 절차를 실행한 후 다음과 같은 실행 결과가 나옵니다.


number는 2입니다.

종료 합니다.


그러나 , number가 case문에 없는 4 라면 default문의 실행문이 실행되어 다음과 같은 결과가 산출됩니다.


number는 1,2,3 은 아니 예요

종료 합니다.


switch

break문의 생략

switch문을 작성함에 있어서 break문이 필수적인 것은 아닙니다.
따라서 프로그램 실행 흐름에 따라 생략이 가능합니다.
위 예제에서 break문이 생략된 다음 예제를 봅시다.


class Example

{

public static void main(String[ ] args)

{

int number=3;

switch(number)

{

case 1:

System.out.println("number는 1 입니다.")


case 2:

System.out.println("number는 2 입니다.");


case 3:

System.out.println("number는 3 입니다.");

                

default:

System.out.println("number는 1,2,3 은 아니 예요.");

               

}

System.out.println("종료 합니다.");

}

}


break문이 생략 되면 case문의 실행이 종료 되어도 switch문 블록을 탈출하지 못 합니다.

그 이후로 계속 순차적으로 진행 될 뿐입니다.

number가 3이므로 위 예제의 경우 case 3 의 실행 문장이 실행 된 후에 default문의 실행 문장도 실행 됩니다.

따라서 위 예제의 실행 결과는 다음과 같습니다.


number는 3 입니다.

number는 1,2,3 은 아니 예요

종료 합니다.


if ~else if~else 문과의 관계

switch문 그리고 if else if else 문은 서로 변경될 수 있습니다. 양자 모두 조건에 따른 다양한 실행 문장을 가지고 있고 있기 때문입니다.
아래 예제는 switch...case문으로 작성된 코드입니다.

switch(number)
{
  case 1 :
  System.out. println("A");
   break ;
  case 2 :
    System.out.println("B");
   break ;
  case 3 :
    System.out.println("C");
   break ;
 default :
    System.out.println("D");
   break ;
}

위의 예제는 아래와 같이 if..else if ..else 문을 사용하여 변경이 가능합니다.

if(number ==1)
   System.out.println("A");
else if(number==2)
   System.out.println("B");
else if (number==3);
   System.out.println("C");
else
   System.out.println("D");


switch문의 조건

switch문의 조건으로는 정수형의 변수 또는 연산 결과가 정수인 연산만 가능하였습니다.

그러나 java 7부터는 String 타입의 변수도 가능 하게 되었습니다.


아래 예제는 switch문의 조건이 String 타입인 예제 입니다.


public class Example {

public static void main(String[ ] args) {

String nation = "한국";

switch(nation) {

case "한국":

System.out.println("수도는 서울입니다.");

break;

case "미국":

System.out.println("수도는 워싱턴입니다.");

break;

default:

System.out.println("검색해 보세요");

}

}

}


위 예제의 실행 결과는 아래와 같습니다.


수도는 서울입니다.




'IT > Java' 카테고리의 다른 글

while문  (0) 2020.04.28
반복문 소개  (0) 2020.04.28
중첩 if 문  (0) 2020.04.25
if~else문  (0) 2020.04.23
if문(자바 조건문)  (0) 2020.04.22