特定の条件が満たされた場合、ループをどのように中断しますか?
私の入力ファイルには約 n 行あります。必要な情報が m 番目の行で取得された場合、残りの行を読み取る代わりに、ループを中断する必要があります。
new File("test.txt").readLines().reverseEach{line ->
println line
if(line.contains("Data"))
break;
}
特定の条件が満たされた場合、ループをどのように中断しますか?
私の入力ファイルには約 n 行あります。必要な情報が m 番目の行で取得された場合、残りの行を読み取る代わりに、ループを中断する必要があります。
new File("test.txt").readLines().reverseEach{line ->
println line
if(line.contains("Data"))
break;
}
これを行うために使用できますfind
。Find は、クロージャーが最初に戻ったときにループを終了しtrue
、最後に見つかった要素を返します。
これ
(1..20).find{
println it
it == 5
}
Groovy コンソールでは次のようになります。
1
2
3
4
5
Result: 5
閉鎖から抜け出すことはできません。例外をスローして終了することも、クロージャをまったく使用しないこともできます。配列/リスト内のすべての行を読み取り、それを反復処理します。