分支结构 switch-case
1.结构:
switch (表达式){
case 常量1:
执行语句1;
//break;
case 常量2:
执行语句2;
//break;
...
default:
执行语句n;
//break;
}
2.说明:
① 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句之后,则仍然继续向下执行其case结构中的执行语句,知道遇到break关键字或此switch-case结构末尾为止结束。
② break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构。
③ switch结构中的表达式,只能是如下的6种数据类型之一:byte、short 、char、int 、枚举类型、String类型
④ case之后只能声明常量。不能声明范围。
⑤ break 关键字是可选的。
⑥ default :相当于if-else结构中的else, default也是可选的。
练习1.在键盘上分别输入年、月、日,判断这一天是当年的第几天
注:判断一年是否是闰年的标准:
可以被4整除,但不可被100整除
或可以被400整除
import java.util.Scanner;
class judge{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入year");
int year = scan.nextInt();
System.out.println("请输入month");
int month = scan.nextInt();
System.out.println("请输入day");
int day = scan.nextInt();
//定义一个变量保存总天数
int sumDays = 0;
switch(month){
// break在switch-case中是可选的。如果没有break则继续执行下一个case语句。
case 12:
sumDays += 30;
case 11:
sumDays += 31;
case 10:
sumDays += 30;
case 9:
sumDays += 31;
case 8:
sumDays += 31;
case 7:
sumDays += 30;
case 6:
sumDays += 31;
case 5:
sumDays += 30;
case 4:
sumDays += 31;
case 3:
//判断是否为闰年
if((year % 4 == 0 && year % 400 != 0)|| year % 400 ==0)
sumDays += 29;
else
sumDays += 28;
case 2:
sumDays += 31;
case 1:
sumDays += day;
}
System.out.println(year + "年" + month + "月" + day + "日是当年的第" + sumDays +"天");
}