我如何将3个条件放入if语句中。必须是真的,然后接下来的两个必须是真的

时间:2017-03-04 07:34:52

标签: java

我正在尝试将3个条件放入if语句中但是卡住了。 它是一个程序,我需要知道在JOptionPane中输入的年份是否是闰年。要变为“变量iYear中的数字必须可以除以4.它必须可以被100或400中的一个整除。”

我现在拥有的是什么,但即使在闰年,输出也会回来,所以我必须编写错误的代码。

if ((iYear % 4 == 0) && (iYear % 100 == 0) || (iYear % 400 == 0){
    blnLeapYear = true;
} else {
    blnLeapYear = false;
}

3 个答案:

答案 0 :(得分:3)

如果您使用的是Java 8,请使用:

java.time.Year.of(iYear).isLeap()

上述方法的Java实现:

public static boolean isLeap(long year) {
        return ((year & 3) == 0) && ((year % 100) != 0 || (year % 400) == 0);
    }

答案 1 :(得分:2)

你在这里写的是闰年的错误条件。 它应该是

if ((iYear % 4 == 0) && (iYear % 100 != 0) || (iYear % 400 == 0)

    {
        blnLeapYear = true;
    }
    else 
    {
        blnLeapYear = false;
    }

闰年是可被4整除但不能100或可被400整除的年份。 因此,100,200,300是非闰年,但400闰年。

答案 2 :(得分:0)

400可分为100 所以 400x 将为x % 100 == 0:

所以,既然你说400或100,我们就可以安全地选择100而忽略400。

在这种情况下,

100可分为4 100x 将为x % 100 == 0

这让我们离开了:

   if(iYear % 100 == 0){
    ...

**编辑