If语句中的逻辑错误
来源:爱站网时间:2021-09-16编辑:网友分享
我尝试过1900年,在我的程序中将其打印为a年,但是1900年不应该是a年。有人可以帮助我了解if条件背后的逻辑吗?类LeapYearTrial {public ...
问题描述
我尝试过1900年,在我的程序中将其打印为a年,但是1900年不应该是a年。有人可以帮助我了解if条件背后的逻辑吗?
class LeapYearTrial{
public static void main(String[]args){
String s;
int year;
s = JOptionPane.showInputDialog("Enter year");
year = Integer.parseInt(s);
if ((year % 100 == 0) && (year % 400 == 0) || (year % 4 == 0)){
JOptionPane.showMessageDialog(null, year + " is a leap year");
} else {
JOptionPane.showMessageDialog(null, year + " is not a leap year");
}
}
}
思路:
因为以下返回true
:
(year % 100 == 0) && (year % 400 == 0) || (year % 4 == 0)
P.S .:如果您正在检查year % 4 == 0
,则无需检查任何其他谓词。