switch 문은 if / else 조건문보다는 사용할 수 있는 범위가 제한적이지만 조건의 분류가 다소 많을 때 유용하게 사용할 수 있습니다.
1. switch 문의 구조
package hello;
public class HelloJava{
public static void main(String[] args){
int num=3;
switch(num){
case 0:
System.out.println("num is 0");
break;
case 1:
System.out.println("num is 1");
break;
case 2:
System.out.println("num is 2");
break;
case 3:
System.out.println("num is 3");
break;
default:
System.out.println("num is not 1 or 2 or 3");
}
}
}
실행결과
The number is 3
계속하려면 아무 키나 누르십시오 . . .
switch 문에서 ( )에는 '정수형 변수'를 넣을 수 있습니다. 그리고 { } 안에서 case라는 구문으로 num값의 경우에 따라 다른 문장이 실행됩니다. num이 어떤 case도 만족하지 않으면 default를 실행시킵니다. 사실 default가 없어도 프로그램은 오류가 나지 않습니다. 하지만 아무런 case도 만족하지 않고 default가 없을 때에 switch문은 결국 아무것도 실행하지 않고 끝나버립니다.
2. break 역할
break문은 break가 포함된 가장 하위단의 반복문을 빠져나온다고 말했지만 switch문을 탈출하는 데에도 사용이 됩니다. switch문은 case를 차례대로 훑으며 num과 같은 값이 인자로 전달된 case를 찾아 실행한다 했습니다. 하지만 switch문은 조건이 성립하는 case만 실행하는 것이 아니라, 그 case부터 마지막 case까지 모든 case를 실행시킵니다. 그렇기 때문에 특정한 문장만 실행한 이후 switch문을 빠져나오기 위해서 break를 쓰는겁니다.
package hello;
public class HelloJava{
public static void main(String[] args){
int num=3;
switch(num){
case 0:
System.out.println("num is 0");
//break;
case 1:
System.out.println("num is 1");
//break;
case 2:
System.out.println("num is 2");
//break;
case 3:
System.out.println("num is 3");
//break;
case 4:
System.out.println("num is 4");
// break;
case 5:
System.out.println("num is 5");
// break;
default:
System.out.println("num is not 1 or 2 or 3");
}
}
}
실행결과
The number is 3
The number is 4
The number is 5
The number is 6
계속하려면 아무 키나 누르십시오 . . .
break를 주석 처리하고 실행한 결과입니다. num이 3이기 때문에 case3에서 멈추고 실해을 시킵니다. 하지만 이후에 빠져나오지 못하고 그 이후의 모든 case를 조건에 상관없이 실행시켜버립니다.
3. switch와 문자
switch문은 정수형 변수를 전달인자로 받는다고 했어요. 따라서 문자도 받을 수 있습니다. 문자도 ASCII를 통해 변환 된 정수일 뿐이기 때문입니다.
package hello;
public class HelloJava{
public static void main(String[] args){
int ch='B';
switch(ch){
case 'A':
System.out.println('A');
break;
case 'B':
System.out.println('B');
break;
case 'C':
System.out.println('C');
break;
default:
System.out.println("None");
}
}
}
실행결과
B
'프로그래밍 언어 > Java' 카테고리의 다른 글
(Java) 14 - 클래스 (0) | 2020.05.17 |
---|---|
(Java) 13 - 객체 지향 프로그래밍이란 (0) | 2020.05.17 |
(Java) 11 - 조건문(2) - 조건 연산자 (0) | 2020.05.17 |
(Java) 10 - 조건문(1) - if (0) | 2020.05.17 |
(Java) 9 - 반복문(3) - do-while (0) | 2020.05.17 |