基本的に次の形式に従うコードを書いています。
public static boolean isIncluded(E element) {
Node<E> c = head;
while (c != null) {
if (cursor.getElement().equals(element)) {
return true;
}
c = c.getNext();
}
return false;
}
コードはノードのリスト内の要素を検索します。しかし、私の質問は、whileループがif文でtrueを返す必要がある要素を見つけた場合、単純にtrueを返し、ループを中断するということです。さらに、ループが中断した場合、メソッドを実行し続けてfalseを返しますか、または値が返されるとメソッドは完了しますか?
ありがとう
はい、通常(そしてあなたの場合)ループから抜け出し、メソッドから戻ります。
1つの例外は、ループ内でreturnステートメントを囲むfinallyブロックが存在する場合、finallyブロックのコードはメソッドが戻る前に実行されるということです。 finallyブロックは終了しない可能性があります-たとえば、別のループを含んだり、戻ることのないメソッドを呼び出したりすることができます。この場合、ループまたはメソッドを終了することはありません。
while (true)
{
try
{
return; // This return technically speaking doesn't exit the loop.
}
finally
{
while (true) {} // Instead it gets stuck here.
}
}
Returnはループを中断し、メソッド全体からすぐに戻ります。途中で実行されるコードは、finally
句の本体とsynchronized
ステートメントのリリースのみです。
また、ループの現在の反復を中断し、次のループをすぐに開始したい場合は、次を使用できます。
continue;
誰も提案していないようです。
はい。
とにかく、これほど短い質問については、自分で試してみた方がよいと思います(そして、より早い回答を得ます)。
呼び出されるたびに戻り、どこからでもメソッドを終了し、呼び出し元に値を返します。