因If条件而缺少return语句

时间:2016-11-13 12:40:46

标签: java

所以我有以下功能:

int digitsum(int n){
    int s = n;
    if(n < 10) 
        return s;     
    while(s > 0){
        n = s + n % 10;
        s = n / 10;
    }
    digitsum(n);
}

我想取一个数字并得到其数字的总和,我想继续这样做,直到我得到一位数字。根据我在这里可以理解的,if语句在编译期间导致错误,它显示missing return statement并突出显示最后}

有人可以帮我这个吗?

4 个答案:

答案 0 :(得分:4)

在非void函数中,每个函数调用都必须跟踪一个return语句,并且如java所示

  

函数中的每个执行路径都必须指向RETURN语句

所以添加此return digitsum(n);

根据java中的这个规则,如果这个条件是if(n < 10) false那么就没有进一步的return语句,所以要么应该有一个默认的return语句,要么在条件return的情况下应该有一些其他else语句。

答案 1 :(得分:1)

if(n<10) return s; 

当n> = 10时,返回值是多少?

答案 2 :(得分:1)

您的函数返回类型为int,因此必须在每种情况中返回int值。您可以添加return 0,也可以将其设为void

答案 3 :(得分:0)

如果方法声明为void,则不必使用return语句(例如,您可以使用System.out.Println),但如果您将方法声明为int,则必须返回一个int。