2017-07-30 9 views
-3

returnはループを終了せず、trueをこのコードの最後の文として返しますか?もしそうなら、それは常に真実を返すのではないでしょうか?戻り値はループを終了せず、このコードの最後の文としてtrueを返しますか?

private boolean isWord(String token) { 
     for (int i = 0; i < token.length(); i++) { 
     char ch = toekn.charAt(i); 
     if (!Character.isLetter(ch)) return false; 
     } 
     return true; 
    } 
+2

'if'がfalseでない場合は、デバッグを使ってメソッドを実行し、何が起こるのかを見ます。 – Guy

+3

[質問するときにSOのコードの画像をアップロードしないのはなぜですか?](https://meta.stackoverflow.com/questions/285551/why-not-to-upload-images-of-code-on-あなたの質問をするとき)、それに応じて質問を編集します。 –

+0

はい、文字以外の文字が最初に出現したときにコードを実行すると、関数はfalseを返します。 –

答えて

1

キーワードは、現在実行機能から値xを返します。それがどのように機能するのですか? return x文はfinallyブロックが続くtry { ... }ブロックの内部で、finallyブロックreturn yステートメントを含む場合x必ずしもreturn xによって返されません

唯一の状況です。

現在のループを終了する場合は、returnの代わりにbreakを使用しています。

+0

関数内にいくつの文があっても、実行中の関数から常に 'x'を返しますか? –

+0

「x」が必ず「return x」によって返される唯一の状況を示すために私の答えを修正しました。 –

0

ループ内に2つのリターンがあります。これは偽を返しますif(!Character.isLetter(ch))(chが文字でない場合)。ループが終了すると、return trueに到達します。

return x
0

キーワードreturnは、囲み関数内で実行を停止し、それに添付された値を返します。この場合はreturn trueです。 if条件が満たされた場合に

はしかし、 return false関数を終了し、呼び出し元のコードにブール値 falseを返します。

最後に、for-loopが反復を完了し、for loop内の条件が実行されない限り、return trueに到達することはありません。

これはあなたの質問を簡潔に説明してくれることを願っています。

関連する問題