-3

我正在制作一个扫描仪对象以获得一年并测试它是否是闰年。只是想要一些反馈。这就是我所拥有的吗?谢谢!

import java.util.Scanner;
public class Micro4 
{
  public static void main(String[] args) 
  {

    Scanner input = new Scanner(System.in);

    int testDate = input.nextInt();

    boolean divFour = (((testDate % 4) == 0));
    boolean divHundred = (((testDate % 100) != 0));
    boolean divFourHundred = (((testDate % 400) != 0));

    if (divFour && divHundred && divFourHundred) {
      System.out.println(testDate + " is a leap year.");
    } else {
      System.out.println(testDate + " is not a leap year.");
    }
  }
}
4

2 回答 2

0

逻辑有点不对。2000 年是闰年,但它不符合您的计划。正确的逻辑应该是:

if ((divFour && divHundred)||!divFourHundred) {

此外,正如 Dave Galvin 所建议的,请使用更好的变量名来提高可读性。

于 2014-10-13T01:07:20.270 回答
0

诀窍是将其放入代码中:

如果一年能被 4 整除,则一年是闰年,但世纪年除非能被 400 整除,否则就不是闰年。

我正在检查(年份是 4 的倍数而不是 100 的倍数)或(年份是 400 的倍数)。

 if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
    System.out.println("Leap");

 else
    System.out.println("Not leap.");
于 2014-10-13T02:11:17.497 回答