[英]Stuck in a loop of errors: unreachable statement and no return statement provided
这是我的代码片段:
public static int dc (String s,int k, int c){
String s1, s2;
int m, n;
if (check(s, k) != -1) {
int p = check(s, k);
c++;
s1 = s.substring(0, p) + s.substring(p + 1);
s2 = s.substring(0, p + 1) + s.substring(p + 2);
if ((check(s1, k) == -1) || (check(s2, k) == -1)) {
return c;
} else {
m = dc(s1, k, c);
n = dc(s2, k, c);
if (m > n) {
return n;
} else {
return m;
}
}
}
}
因此,该错误表明存在一个丢失的return语句(不确定我错过了哪种情况)。 但是,当我在末尾添加return语句时,它表明该return语句不可访问。 我在这里找到了一个有用的答案: 无法到达的return语句仍会引发错误,并且我尝试将其放在try catch块中,但它仍然会要求return语句。 即使编译器知道我最后编写的任何内容都是多余的,为什么它仍然显示错误?
第一个如果Block没有别的...
if(check(s,k)!=-1){
......}
如果你第一次检查check(s, k)
返回-1
,那么你不返回任何
public static int dc(String s, int k,int c){ String s1,s2; int m,n; if(check(s,k)!=-1) { int p=check(s,k); c++; s1=s.substring(0,p)+s.substring(p+1); s2=s.substring(0,p+1)+s.substring(p+2); if((check(s1,k)==-1)||(check(s2,k)==-1)){ return c; } else{ m=dc(s1,k,c); n=dc(s2,k,c); if(m>n){ return n; } else{ return m; } } } // MISSING RETURN BELOW return n; }
我建议使用像eclipse这样的IDE,它将帮助您发现这些问题。 它确实为我添加了声明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.