我的返回值有一个错误,它说它没有被初始化,但是我在它上面的if then语句中对其进行了初始化。
public static String leapYear(int n) {
int j;
int r;
int f;
j = n % 4;
String check;
if (j == 0) {
r = n % 100;
if (r == 0) {
f = n % 400;
if (f == 0) {
check = ("The year is a leap year.");
}
}
} else {
check = ("The year is not a leap year.");
}
return check;
}
答案 0 :(得分:1)
请尝试删除else部分,并将值以String
的斜体形式显示:
public static String leapYear(int n){
int j;
int r;
int f;
j=n%4;
String check = "The year is not a leap year.";
if(j==0){
r=n%100;
if(r==0){
f=n%400;
if(f==0){
check=("The year is a leap year.");
}
}
}/*
else{
check=("The year is not a leap year.");
}*/
return check;
}
答案 1 :(得分:0)
如果j = 0,f!= 0,将不会初始化check的值。同样,如果j = 0,则r!= 0。
通常遵循的模式应该是
var = "initialize default value"
if (conditions)
set var
return;