i继续获取错误消息“操作员||不能应用于boolean,int。”谁能帮我弄清楚该怎么办?
您想要这样的东西:
if ( (month == 1) || (month == 3) || (month == 5) || (month == 7)
|| (month == 8) || (month == 10)
您可以避免使用任何开关,或者/否则使用新Java 1.8 Time API使用
java.time.Month
:public static int daysInMonth(int month) {
return Month.of(month).minLength();
}
boolean
| | ||
boolean
不是有效的动作
int
或A
month == 1 || month == 3 || ...
此外,您也没有涵盖leap年的场景,它适合重复使用已经解决的问题
Map<Integer, Integer> monthNumberToMaxDaysMap
above方法仅考虑当年,您可以将其利用为通过一年
因此,如果您想要基本代码(不使用地图或其他特殊功能),则可以使用Switch来易于阅读。例如:
public static void daysInMonth(int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, month -1);
return cal.getActualMaximum(Calendar.DAY_OF_MONTH)
}
public static void daysInMonth(int month) {
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:
System.out.println("28");
break;
}
}
是的,它非常长且效率低下,但仍然是一个基本解决方案。除非您是初学者,否则不是很建议。