switch条件语句:
switch(条件语句){
case 取值1:
语句块1;
…
case 取值n:
语句块n;
default:
语句块;
}
- 表达式的值只可以接受int、byte、char、short 、String型(只在JDK7及以后版本有效),不接受其他类型的值
- switch case中的值必须要与switch表达式的值具有相同的数据类型。而且case后跟的值必须是常量,不能跟变量。
- 不允许有重复的case取值
- switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置,开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,直到碰到break关键字或者结束switch语句的大括号为止
- case之间与default没有顺序。先判断所有的case,没有匹配的case执行default。因此一般将default放在case后面。
switch条件语句显示每月天数(考虑闰年)
package com.bs.test;
import java.util.Scanner;
public class Tiaojian {
public static void main(String[] args) {
// 如果月份month为1—12的一个月份,输出该月份的天数;
// 如果数字不符合,输出“错误的月份”。
// 使用switch语句完成需求
Scanner sc=new Scanner(System.in);
System.out.println("请输入年份");
int year=sc.nextInt();
System.out.println("请输入月份");
int month=sc.nextInt();
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("有31天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("有30天");
break;
case 2:
//判断是否是闰年
if(year%400==0||year%4==0&&year%100!=0){
System.out.println("29天");
}else{
System.out.println("28天");
}
break;
default:
if(month>12||month<1){
System.out.println("错误的月份,请输入正确月份");
}
break;
}
}
}