【问题标题】:Leap year in java [duplicate]java中的闰年[重复]
【发布时间】:2016-05-22 19:01:24
【问题描述】:

为什么这段代码不起作用。我是业余爱好者,今天开始学习java。

链接到 java 可视化器: http://www.cs.princeton.edu/~cos126/java_visualize/#

这是代码:

public class ClassNameHere {
public static int max(int[] m) {
if ((m % 400 == 0) && (m % 4 == 0) && (m % 100 != 0)) {
System.out.println(m + "is a leap year");
} else {
System.out.println(m + "is not a leap year");

}
}
}
max(2000);

【问题讨论】:

  • 做一些谷歌搜索并找到闰年的代码。
  • 请添加代码,说出你的期望,说出你得到的。
  • 你的逻辑搞砸了。如果m % 400 == 0,那么m % 100 == 0
  • 你可能想知道这个:google.com/…

标签: java leap-year


【解决方案1】:

我要说的第一件事是你操作对象的方式没有多大意义...... 一切从这里开始:

public static int max(int[] m) {
if ((m % 400 == 0) && (m % 4 == 0) && (m % 100 != 0)) {

由于 m 是一个整数数组,因此编译器没有逻辑方法可以理解将数组除以 4 或取该除法的模数......那段代码甚至不可能是编译。

第二。 这里的逻辑是不正确的:

if ((m % 400 == 0) && (m % 4 == 0) && (m % 100 != 0)) {

应该是

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

示例:

public boolean isLeap(final int year) {
    return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}

【讨论】:

    【解决方案2】:

    您在if ((m % 400 == 0) && (m % 4 == 0) && (m % 100 != 0)) 中的逻辑不正确。这是检查闰年的正确程序:-

    public class DetermineLeapYearExample {
         public static void main(String[] args) {
    
                        //year we want to check
                        int year = 2004;
    
                        //if year is divisible by 4, it is a leap year
    
                        if((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
                                System.out.println("Year " + year + " is a leap year");
                        else
                                System.out.println("Year " + year + " is not a leap year");
                }
        }
         Hope it will help
    

    【讨论】:

      【解决方案3】:

      max 方法参数是一个定义为“int[] m”的数组,因此 max(2000) 不起作用。 除此之外,如其他答案所述,您没有主要功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多