/**
switch语句有关规则
• switch(表达式)中表达式的值必须是下述几种类型之一:byte,short, char,int,枚举 (jdk 5.0),String (jdk 7.0);
• case子句中的值必须是常量,不能是变量名或不确定的表达式值;
• 同一个switch语句,所有case子句中的常量值互不相同;
• break语句用来在执行完一个case分支后使程序跳出switch语句块;如 果没有break,程序会顺序执行到switch结尾
• default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时, 执行default
*/
/*
练习题:
编写程序:从键盘上输入2019年的“month”和“day”,
要求通过程序 输出输入的日期为2019年的第几天。
注意:本题中容易产生疑问的点在于通过匹配,执行完一条case语句之后,还要继续往下执行。
所以本题代码中没有使用break,且月份从12 >> 1排列来实现。
*/
import java.util.Scanner;
public class SwitchTest4{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入月份:");
int month = scan.nextInt();
System.out.println("请输入日期:");
int day = scan.nextInt();
int sum = 0;
switch(month){
case 12:
sum += 31;
case 11:
sum += 30;
case 10:
sum += 31;
case 9:
sum += 30;
case 8:
sum += 31;
case 7:
sum += 31;
case 6:
sum += 30;
case 5:
sum += 31;
case 4:
sum += 30;
case 3:
sum += 31;
case 2:
sum += 28;
case 1:
sum += day;
}
System.out.println("2019年"+month+"月"+day+"号是该年的第"+sum+"天");
}
}