2017-04-07 11 views
-3

条件がfalseのときに各ループの処理を停止する方法を教えてください。コレクション内のすべてのオブジェクトが条件に当てはまる場合にのみx = newXとすることができるからです。ご協力ありがとうございます。休憩は助けにならない、私は試みた。条件を満たした後にループ内で検索を停止する方法

for (char h : collection){ 
    if (condition == false) 
    { 

    } 
    else{ 
     x = newX; 
    } 
} 
+0

使用休憩を。ループを終了するには –

+3

'break'が役立ちます。これは、ループ(したがって、名前)から脱出する標準的な方法です。 – Kayaman

+2

"ブレークは助けにならない、私はやった"。それは助けになる。それがあなたが望むものでないならば、説明してください。 –

答えて

0

最も簡単な方法は、breakステートメントを使用することです。しかし、リストのすべての要素が何らかの条件を満たす場合にのみ、新しいx値を設定することができます。

boolean allMatch = true; 
for (char h : collection) { 
    if (!condition) { 
     allMatch = false; 
     break; 
    } 
} 
if (allMatch) { 
    x = newX; 
} 

あなたはループSOFすべての要素は、あなたは、Java 8の機能を使用することができますいくつかの条件に一致しているかどうかを確認したい場合:

boolean allMatch = list.stream().allMatch(element -> condition); 
if (allMatch) { 
    x = newX; 
} 
+0

'allMatch = allMatch && condition;'行は不要です。 'allMatch = condition'あるいは' allMatch = false'を最初のif文に入れても十分でしょう。 –

+0

真ですが、なぜ、各ループの値を更新するのですか?一致しない状態でのみ行うのは賢明でしょう。 – Beri

+0

あなたはどんな価値がありますか? 'allMatch'を意味するのなら、それはまさに私が避けようとしていたものです。 **今**はイタレーションを更新していないので、最後にのみ( 'break'の前に)更新されます。 –

1

使用breakbreak; if文の条件が真です。

for (char h : collection) { 
    if (condition == false) { 
     break; 
    } else { 
     x = newX; 
    } 
} 
0

breakステートメントはループを終了します。

あなたの例では、このように次のようになります。

for (char h : collection){ 
    if (condition == false) 
    { 
     break; 
    } 
    else{ 
     x = newX; 
    } 
} 

official documentationでbreak文については、こちらをご覧ください。

0

break;キーワードを使用してください。

最終的にループを壊し、条件が満たされた後で終了します。

1

他のブロックだけ悲しげにあなたの質問は非常に明確ではありません一度

boolean test=true; 
    for (char h : collection) { 
     if (condition == false) { 
      test=false; 
      break; 
     } 
    } 
    if(test){ 
     x=newX; 
    } 

実行する必要がある場合は多分あなたはフラグを使用して作業することができます。多分あなたは条件などの例を与えることができます

関連する問題