switch case语句的使用,根据年月日计算当前日期是这一年的第几天

1.switch后面允许有哪些类型?
byte、short、char、int、enum、String
JDK1.5后允许有enum枚举类型。
JDK1.8后允许有String类型。

2.Switch case语句格式:

switch(变量){
case 变量值1:
    //;
    break;
case 变量值2:
    //...;
    break;
  ...
case default:
    //...;
    break;
}

3.switch case执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断。

4.程序结果:

5.代码如下:               


import java.util.Scanner;
 

 
public class ClacDay {
 
    public static void main(String[] args) {
        //1.获取控制台输入的年月日
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("请输入年份:");
        int year = scanner.nextInt();
        System.out.println("请输入月份:");
        int month = scanner.nextInt();
        System.out.println("请输入日期:");
        int day = scanner.nextInt();
        
        //2.计算二月份的天数
        //int daysofFeb = calcfebDays(year);
        
        //3.使用Switch case累加天数
        int sum = 0;
        switch (month) {
        case 12:sum += 30;
        case 11:sum += 31;
        case 10:sum += 30;
        case 9: sum += 31;
        case 8: sum += 31;
        case 7: sum += 30;
        case 6: sum += 31;
        case 5: sum += 30;
        case 4: sum += 31;
        case 3: sum += calcfebDays(year);
        case 2: sum += 31;
        case 1: sum += day;
        default:
            break;
        }
        System.out.println(year+"年"+month+"月"+day+"日");
        System.out.println("是"+year+"年的第"+sum+"天!");
    }
    //能够被4整除并不能被100整除,或能够被400整除来计算是否为闰年
    public static int calcfebDays(int year) {
        //判断二月份是否为闰年,使用三目运算符
        return year % 4 ==0 && year % 100 !=0 || year % 400 ==0 ? 29 : 28;
    }
    public static int calcfebDays2(int year) {
        //使用if判断语句
        if(year % 4 ==0 && year % 100 !=0 || year % 400 ==0) {
            return 29;
        }
        return 28;
        
    }
 
}
6.还需注意的是当进行case判断时,JVM会自动从上到下扫描,寻找匹配的case,case后面只能是常量,可以是运算表达式,但一定要符合正确的类型。不能是变量,即便变量在之前进行了赋值,JVM依然会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值