package ch16;
import java.util.Scanner;
public class SwitchCaseTest {
public static void main(String[] args) {
//한달이 몇일인지 알려주는 프로그램 구현
Scanner scanner = new Scanner(System.in); //숫자를 입력받기 위해 스캐너 사용
System.out.println("월을 입력하라");
int month = scanner.nextInt(); //월을 정수로 입력 받기
int day; //몇일인지를 표현하기 위해 사용한 변수
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12: //같은 일수 끼리 한줄에 작성도 가능하다.
day = 31;
break; //break문을 안쓰면 다음 문장으로 넘어가서 수행 시켜버리기 때문에 꼭 써줘야 한다.
case 2:
day = 28;
break;
case 4:
day = 30;
break;
case 6:
day = 30;
break;
case 9:
day = 30;
break;
case 11:
day = 30;
break;
default :
System.out.println("존재하지 않는 달 입니다");
day = -1;
}
System.out.println(month + "월은 " + day + "일 입니다.");
}
}
실행결과
package ch16;
import java.util.Scanner;
public class SwitchCaseTest2 {
//문자열이 지원되는 switch ~ case문
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //문자열을 받기 위해 스캐너 사용
System.out.println("무슨 메달을 받을까?");
String medal = scanner.next(); //스캐너로 문자열을 받아 출력하기
switch(medal) {
case "Gold":
System.out.println("금메달");
break;
case "Silver":
System.out.println("은메달");
break;
case "Bronze":
System.out.println("동메달");
break;
default : //해당 하는 조건이 없을시 출력될 default 조건
System.out.println("메달 x");
}
}
}
실행결과
package test;
import java.util.Scanner;
public class SwitchCaseTest2_Test {
//문자열이 지원되는 switch ~ case문 (응용예제)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("무슨 커피를 마실까?");
String cafe = sc.next();
switch(cafe) {
case "americano":
System.out.println("아메리카노를 마실래!");
break;
case "latte":
System.out.println("라떼를 마실래!");
break;
case "coldbrew":
System.out.println("콜드브루를 마실래!");
break;
default :
System.out.println("마시고 싶은 커피가 없어!");
}
}
}
실행결과
package ch16;
import java.util.Scanner;
public class SwitchCaseUpTest {
//표현식을 사용하는 switch ~ case문
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("월을 입력 하세요");
int month = scanner.nextInt();
int day = switch(month) {
case 1, 3, 5, 7, 8, 10, 12-> {
System.out.println("이번달은 31일 까지 있습니다.");
yield 31;
}
case 2->
28;
case 4, 6, 9, 11->
30;
default-> { //문장이 두개 또는 그 이상인 경우는 중괄호를 사용한다.
System.out.println("존재하지 않는 달 입니다.");
yield -1; //수행하는 값이 있고 반환해야 하는 값이 있을때 사용하는 키워드가 yield이다.
}
}; //문장의 끝을 알려줘야함
System.out.println(month + "월은 " + day + "일 까지 있습니다.");
}
}