2017-02-03 11 views
-4

なぜ私は "return statement missing"を得ているのか分かりません。何のリターンが存在しない条件ならば、あなたの2番目と3番目に
enter image description hereJava Beginner Recursion with boolean

+0

すべてのパスが値を返さない.... –

+0

You'veはELSEIF条件で何かを戻します。 –

+2

コードを画像ではなくテキストとして添付してください。これは、他の人が –

答えて

1

:ここ

は、コードとイメージです。他人の代わりに、偽を返すだけです。

だから、読み取ります。この場合、

public class isTrans { 
     public static boolean isTrans(String s,String t) { 
      if (t.length()==1 && (s.charAt(s.length()-1))==t.charAt(0)){ 
       return true; 
      } else if (s.charAt(0)==t.charAt(0)){ 
       return isTrans(s,t.substring(1)); 
      } else if (s.charAt(1)==t.charAt(1)){ 
       return isTrans(s,t.substring(1), t); 
      } 
      return false; 
     } 
    } 
+0

を読むのがはるかに簡単になるでしょう。もし私が他を取り除いて偽物を返すならば、私はいつも偽を返します。 – OLY

+1

ありがとうyouuuuuuu sooooo muchhhhhhhhh – OLY

+0

あなたの大歓迎! – SPlatten

0

を使用すると、すべての条件に戻すか、またはメソッドの最後に返すことがあります。

0
if(/*...*/) { 
    return true; 
} 
else if(/*...*/) { 
    return isTrans(/*...*/); // return whatever isTrans returns 
} 
else if(/*...*/) { 
    return isTrans(/*...*/); // here too 
} 
else { 
    return false; 
} 
+1

このユーザーの問題は解決しているかもしれませんが、将来この問題に遭遇するユーザーにとってはコード専用の回答はあまり役に立ちません。あなたのコードが元の問題を解決する理由を説明するために、あなたの答えを編集してください。 –

0

else ifで関数の実行結果を返す必要があるため、再帰が正しく機能します。このように:

return isTrans(s, t.substring(1))