为什么这段代码不起作用。我是业余爱好者,今天开始学习java。
链接到java visualiser: 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);
答案 0 :(得分:1)
我要说的第一件事就是你操作物体的方式没有多大意义...... 一切都从这里开始:
public static int max(int[] m) {
if ((m % 400 == 0) && (m % 4 == 0) && (m % 100 != 0)) {
由于m是一个int数组,因此编译器没有逻辑方法可以理解将数组除以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);
}
答案 1 :(得分:0)
第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
答案 2 :(得分:0)
max method参数是一个数组,定义为" int [] m"所以max(2000)不会起作用。 除此之外,正如其他答案所述,你没有主要功能。