簡體   English   中英

陷入錯誤循環:無法訪問的語句,沒有提供返回語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM