前兩種方法有效,但接下來的兩種方法不能編譯。他們怎麼了?它說他們兩人的表達非法開始。我對方法相當陌生,所以任何建議都會有所幫助。我並不真正瞭解方法規則,但似乎它們與前兩者完全相同,所以我很困惑。下面的代碼:爲什麼前兩種方法沒問題,但接下來的兩種方法不能編譯?
public class MathMethods{
public static int factorial (int n) {
int fact = 1; int i;
for (i=1; i<=n; i++){
fact = fact * i;
}
return fact;
}
public static double absoluteValue (double a) {
if(a>=0){
return a;
}
else{
return a * -1;
}
public static double minOf3Numbers (double a , double b , double c) {
if(a <= b && b < c){
return a;
}
else if(b <= a && b < c){
return b;
}
else{
return c;
}
}
public static int leapYear (int a) {
if(a % 400 == 0){
return ("IT IS A LEAP YEAR");
}
else if(a % 100 == 0){
return ("IT IS NOT A LEAP YEAR");
}
else if(a % 4 ==0){
return ("IT IS A LEAP YEAR");
}
else{
return ("IT IS NOT A LEAP YEAR");
}
}
//public static void main(String args[]) {
//System.out.print("The factorial of 12 is ");
//System.out.println(MathMethods.factorial(12));
}
}
因爲你還沒有關閉第二種方法,並且你爲最後的方法返回了不正確的類型 – Reimeus
像Eclipse或NetBeans這樣的IDE會給你提供一個很好的紅色箭頭,正是問題所在。 – chrylis