switch문
if문의 조건식이 많아지면 경우의 수가 증가하여 복잡해진다. switch문은 이러한 문제를 해결해 처리해야 할 경우의 수가 많을 경우 표현을 간결하게 할 수 있다. switch문의 사용을 알아보자.
조건식을 계산한다. 계산된 값이 일치하는 case문으로 이동한다. 이후의 문장들을 break문이나 swtich문의 끝이 나타날 때 까지 진행한다.
조건에 따라 계산의 흐름이 진행되는 건 if문과 다르지 않다. 그렇다면 if문과 switch문의 차이점은 무엇일까?
우선 if문의 조건식이 값이 true, false 두 개의 값을 갖는 반면 switch문은 정수, 문자열의 값을 갖는다. 또한 if문은 많은 수의 괄호안에 다양한 조건식이 사용되는 반면에 switch문은 하나의 괄호와 조건식이 쓰인다. 그래서 if문에 비해 경우의 수가 많을 때 유용하다. 마지막으로 switch문을 쓰기 위해서는 제약조건이 있는 반면에 if문은 그에 비해 상대적으로 제약조건이 적다.
switch문의 제약조건
switch문은 두 가지 조건이 있다.
1.switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
2.case문의 값은 정수 상수(문자 포함,변수는 안된다), 문자열만 가능하며, 중복되지 않아야 한다.
public static void main(String[] args) {
int num, result;
final int ONE = 1;
...
switch(result) {
case '1': //OK. 문자리터럴(정수 49와 동일)
case ONE: //OK. 정수 상수
case "YES": //OK. 문자열 리터럴. JDK 1.7부터 허용
case num: //에러. 변수는 불가
case 1.0: //에러. 실수도 불가
...
}
출처:자바의 정석 기초편(저자:남궁성, 출판사:도우출판)
'java > 기본문법' 카테고리의 다른 글
[조건문과 반복문]break문, continue문 (0) | 2022.01.28 |
---|---|
[조건문과 반복문]while문, do-while문 (0) | 2022.01.28 |
[조건문과 반복문] for문 (0) | 2022.01.25 |
[조건문과 반복문] 임의의 정수만들기 Math.random() (0) | 2022.01.25 |
[조건문과 반복문] if문 (0) | 2022.01.25 |