我正在运行此java代码,我收到错误“缺少return语句” 请帮忙。我在Windows中使用cmd运行。
public class Fibonocci {
public static void main(String[] args) {
int i, limit, c;
i = 0;
limit = 5;
System.out.println("Fibonocci series :");
for (c = 1; c <= limit; c++) {
System.out.println(fib(i));
System.out.println("/n");
i++;
}
}
public static int fib(int p) {
if (p == 0) {
return 0;
}
if (p == 1) {
return 1;
} else if (p > 1) {
return (fib(p - 1) + fib(p - 2));
}
}
}
答案 0 :(得分:2)
如果p<0
,您的代码不会返回任何内容。
您可以将其更改为:
public static int fib(int p){
if (p<=0) // or perhaps you wish to throw an exception if a negative value is entered
return 0;
else if (p==1)
return 1;
else // when you end the if statement in else instead of else-if
// your method is guaranteed to return something for all inputs
return(fib(p-1)+fib(p-2));
}
答案 1 :(得分:1)
您缺少默认return
。您将从if
和else if
返回。
如果两个条件都不满意怎么办?你也需要提供它。
我建议返回-1
id两个不满意的条件,这是负数negative
public static int fib(int p) {
if (p == 0)
return 0;
else if (p == 1)
return 1;
else if (p > 1)
return (fib(p - 1) + fib(p - 2));
else
return -1;
}