switch 문이란?
switch 문은 if 문과 같은 조건문으로 특정 상황에서는 if 문보다 좀더 깔끔하게 로직 분기처리를 가능하게 해주는 문법이다. 개인적으로 정말 재밌고 편리하다고 생각하는 문법이다.
switch 문의 특징.
- switch 문의 () 조건식에는 if 문과 달리 boolean 값 외 변수, 상수, 수식, 메서드 등이 올수 있고 그 결과값은 정수 또는 문자(열) 이어야 한다.
- case 문의 값은 정수 또는 문자(열) 만 받을 수 있다.
- case 문의 값은 다른 case 와 중복으로 지정될 수 없다.
- 각각의 case 문은 break; 로 끝나야 한다. 만약 break 으로 끝맺음을 안했을시 다음 case 로 넘어가 의도하지 않은 잘못된 분기처리가 될 수 있다.
- switch 문의 마지막은 default 값을 넣어줘야 한다. if 문의 else 와 비슷하며 해당하는 case 가 없을때 default 를 실행하고 switch 문 로직을 종료한다.
✚ [ switch 문의 문법 ] ✚
switch (변수) {
case 조건 1 :
// 조건1 실행 로직
break;
case 조건 2 :
// 조건2 실행 로직
break;
case 조건 3 :
// 조건3 실행 로직
break;
default :
// 상기 조건에 해당 사항이 없을 경우 default 실행 로직.
}
실습 코드
행성의 간단한 정보를 알아볼수 있는 콘솔 장난감을 만들어 보자.
public static void main(String[] args) throws Exception {
Scanner s = new Scanner(System.in);
while(true) {
System.out.println("행성 하나를 선택해주세요. \n 1. [지구] \n 2. [화성] \n 3. [토성] \n 4. [exit]");
String planet = s.next();
switch (planet) {
case "지구" :
System.out.println("지구를 선택하셨습니다. \n --> 지구는 퍼렁별로 우리가 살고있는 행성입니다.");
break;
case "화성" :
System.out.println("화성을 선택하셨습니다. \n --> 화성은 일론 머스크가 꼭 사람을 보내고 싶어하는 우리 이웃 행성입니다.");
break;
case "토성" :
System.out.println("토성을 선택하셨습니다. \n --> 토성은 멋진 고리를 가지고 있는 행성입니다.");
break;
case "exit" :
System.out.println("종료합니다.");
System.exit(0);
default :
System.out.println("다시 선택해 주세요.");
}
}
}
while (true) 로 무한루프를 사용하여 행성 정보 시스템 콘솔 장난감을 한번 만들어 보았다.
목록에 제시된 행성명을 치면 그에 대한 정보가 출력되며 모두 사용 후 exit 이라고 입력하면 해당 장난감은 종료된다.
참고로 switch 문 내에 사용된 break; 문은 while 문까지는 영향을 끼치지 못한다. 그저 switch 문만 break; 을 걸고 다시 while 문으로 빠져나와 다시 반복문을 실행시켜 Scanner 에 next() String 값을 받을 준비를 한다.
exit 에서 System.exit(0) 을 사용해 "main" 메서드의 실행을 종료시켰다.
'Java 문법 > 코딩은 처음이라 with 자바 (책)' 카테고리의 다른 글
[Java] - 함수(메서드, Function) (0) | 2023.07.16 |
---|---|
[Java] - 제어문3 : while 문 (0) | 2023.03.12 |
[Java] - 제어문2 : 조건문 - if 문 (1) | 2023.03.12 |
[Java] - 제어문1 : for 문 && 향상된 for 문 (0) | 2023.03.12 |
[Java] - 배열 (1차원 배열, 다차원 배열) (0) | 2023.03.11 |