티스토리 뷰
switch문 개념
switch문은 if문 또는 if else문과 마찬가지로 조건을 만족하는 코드를 실행 시키는 구조라는 점에서 아주 비슷하다. 그러나 switch문은 조건을 충족하여 실행 되는 실행 문의 수가 많을 때 주로 사용한다.
switch문 형식
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문의 생략
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문의 조건
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("검색해 보세요");
}
}
}
위 예제의 실행 결과는 아래와 같습니다.
수도는 서울입니다.