Swich-case控制
条件内容等价于==
switch语句练习1
从键盘分别输入年、月、日,判断这一天是当年的第几天
注:判断一年是否是闰年的标准:
1)可以被4整除,但不可被100整除
或
2)可以被400整除
注释:主要就是区分闰年中的二月有几天!
switch和if语句的对比
if和switch语句很像,具体什么场景下,应用哪个语句呢?
1.如果判断的具体数值不多,而且符合byte、 short 、 char、 int、 String、枚举等几
种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
2.其他情况:对区间判断,对结果为boolean类型判断,使用if, if的使用范围更广。
也就是说, 使用switch-case的,都可以改写为if-else。反之不成立。
下面展示一些 内联代码片
。
/*
从键盘分别输入年、月、日,判断这一天是当年的第几天
注:判断一年是否是闰年的标准:
1)可以被4整除,但不可被100整除或
2)可以被400整除
*/
import java.util.Scanner;
public class SwitchCase {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入年:");
int year = scan.nextInt();
System.out.println("请输入月:");
int mouth = scan.nextInt();
System.out.println("请输入日:");
int day = scan.nextInt();
//定义一个总天数的变量
int sumDays = 0;
switch (mouth){
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 % 100 != 0) || year % 400 == 0){
sumDays += 29;
}else{
sumDays += 28;
}
case 2:
sumDays += 31;
case 1:
sumDays += day;
}
System.out.println(year + "年" + mouth + "月" + day + "日是当年的第" + sumDays +"天!");
}
}