gpt4 book ai didi

java - 如何通过不获取另一个案例的值来在 switch case 中创建 if 语句?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:41 24 4
gpt4 key购买 nike

现在我有一个问题,我想用这个运行我的代码如果年份为真,我会在案例 2 上检查 februay 而不是运行 execute if 语句,如果它为假,它将进入默认状态,但现在它进入案例 3 语句如何解决,而不是进入案例 3,而是去到默认值?

//这是我的代码

public static void main(String[] args) {
getDaysInMonth(1, 2018);
System.out.println(getDaysInMonth(2, 2018));

}

public static boolean isLeapYear(int year) {
if(year < 1 && year > 9999) {
return false;
} else {
if(year % 4 == 0) {
return true;
} else if(year % 100 == 0) {
return false;
} else if(year % 400 == 0) {
return true;
} else {
return false;
}
}
}

public static int getDaysInMonth(int month, int year) {
if((month < 1 || month > 12) && (year < 1 || year > 9999)) {
return -1;
}
isLeapYear(year);
int days;
switch(month) {
case 1:
days = 31;
break;
case 2:
if(year == 1) {
days = 29;
break;
}

case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
default:
days = 28;
break;
}
return days;
}

最佳答案

发生这种情况是因为您的 breakIF 范围内 -> 那么如果年份不是 1,它会继续到情况 3。

您可以使用if else 子句:

    case 2:
if(year == 1) {
days = 29;
} else {
days = 28;
}
break;

但我必须提醒你,year != 1 并不意味着它的 2 月有 28 天,也许你想要这个:

    case 2:
if(!isLeapYear(year)) {
days = 29;
} else {
days = 28;
}
break;

关于java - 如何通过不获取另一个案例的值来在 switch case 中创建 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com