为什么不接受我的回报价值呢?

时间:2016-10-20 17:50:28

标签: java while-loop return-value

我的代码应该接受leapyears并通过参数运行它以验证它是否是闰年并且通过在顶部使用参数方法忽略不是闰年但返回值返回错误。 printLeap值也是如此。

我已经超过4个小时了,我不能这样做xD。如果它不是闰年,我不知道如何让它忽略价值。我只是java的新手,尤其是返回值的新手,是的,这是家庭作业,但标签不显示我尝试过的家庭作业选项,没有短划线。

我尝试使用double值返回(I,J),但如果J不是闰年,则返回结果0。我也尝试通过使用纯粹的if else if语句但再次同样的问题...任何建议或帮助非常感谢

这是我修改后的代码==

导入javax.swing.JOptionPane;

public class SimpleMath {

public static int printLeap(int r, int k){  
    if((r % 4 == 0) && (r % 100 != 0) || (r % 400 == 0)){
    return r;
    }
    else if ((r % 4 != 0) && (r % 100 == 0) || (r % 400 != 0));
    return k;
}


public static void main(String[] args) {


    while (true) { //while the statement is true (so it continues indefinitely until the break occurs).

        String year = JOptionPane.showInputDialog("Enter input year, when done type End");

        if ("End".equals(year)){ //if the user types End then the loop will break. it allows a string to be input for an int value

            break;
        }   {
              int r = Integer.parseInt(year); 

 int k = 0;
int i = printLeap(r, k);
if (i == 0) {
    System.out.println("");
}
else
    System.out.println("This is a leap year:  " + i);   


}
}
}

}

1 个答案:

答案 0 :(得分:0)

忽略非闰年需要if语句。我建议:

            int r = Integer.parseInt(year);
            if (printLeap(r)) {
                System.out.println("This is a leap year:  " + r);
            }

这些语句周围不需要花括号。 以上反过来要求printLeap(你可以想到一个更好的名字)返回boolean。这其实很简单:

private static boolean printLeap(int i) {
    return i % 4 == 0 && i % 100 == 0;
}

顺便说一下,你的公式中有一个我没有纠正的闰年错误。看看你能否为自己找到答案。