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,则无需检查任何其他谓词。
 
                    