为什么这段代码不起作用。我是一个业余爱好者,今天开始学习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);
最佳答案
我要说的第一件事是,你操作对象的方式没有多大意义...... 一切都从这里开始:
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);
}
关于java - java中的闰年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37362780/