switch문을 사용할 수 있는 조건
📌 if else가 사용 혹은 반복되며
📌 모든 조건문들이 같은 변수를 비교하고
📌 변수는 오로지 하나의 값과 같을 때만을 판별할 때
switch문 사용이 가능하다.
switch문의 구조
switch(변수 or 변수를 포함한 식) {
case a:
변수 값이 a일 때 실행될 코드;
break;
case b:
변수 값이 b일 때 실행될 코드;
break;
default:
변수 값이 a나 b가 아닐 때 실행될 코드;
}
📌 switch
switch문 전체를 중괄호{ }로 감싸줌
switch() 소괄호 안에 switch문 안에서 비교할 변수나 식을 넣어줌
📌 case
switch문의 조건식
예를 들어 'case 9:'는 if(변수==9)와 같은 의미이다
하지만 case는 실행될 코드를 { }로 감싸주지 않음
❗case의 조건은 하나의 값만 가능함
case 변수<10 처럼 식은 불가능❗
📌 break
다른 case로 넘어가지 않게 막아주는 역할
앞선 코드를 예로 들면,
int x=a;
switch(x) {
case a:
code1;
case b:
code2
default:
code3
}
case a에 있는 code1이 실행된 뒤, 종료시켜줄 break가 없어서
뒤에 있는 code2, code3까지 실행되고 switch문이 종료된다.
int x=b;
switch(x) {
case a:
code1;
case b:
code2
default:
code3
}
만약 이런 상황이면, case b의 code2가 실행된 뒤,
code3까지 실행되야 switch문이 종료된다.
int x=b;
switch(x) {
case a:
code1;
break;
case b:
code2
break;
default:
code3
}
break가 있다면 code2만 실행된 뒤 종료된다.
switch문 활용하기
📌 입력된 정수 i가 10이면 "ten"을 출력하고
100이면 "hundred", 1000이면 "thousand"를 출력하라.
10, 100, 1000가 아닐 경우에는 "any number"를 출력하라.
import java.util.Scanner;
public class Today_201007_2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int i=s.nextInt();
if(i==10) {
System.out.println("ten");
}else if(i==100) {
System.out.println("hundred");
}else if(i==1000) {
System.out.println("thousand");
}else{
System.out.println("any number");
}
}
}