我的返回值有一个错误,它说它没有初始化,但是我在它上面的if then语句中将它初始化了

时间:2018-11-05 04:21:47

标签: java methods

我的返回值有一个错误,它说它没有被初始化,但是我在它上面的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;
}

2 个答案:

答案 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;