打破Groovy中的每个循环

时间:2013-02-18 05:58:36

标签: groovy

如果满足特定条件,我将如何打破循环?

我的输入文件大约有n行。如果在第m行获得所需信息,我需要打破循环而不是读取剩余的行。

new File("test.txt").readLines().reverseEach{line ->
   println line

   if(line.contains("Data"))
   break;
 }  

2 个答案:

答案 0 :(得分:3)

您可以使用find执行此操作。在闭包第一次返回true时,查找结束循环并返回最后找到的元素。

(1..20).find{
    println it
    it == 5
}

在groovy控制台中会出现以下内容。

1
2
3
4
5
Result: 5

答案 1 :(得分:0)

你不能只是打破封闭。您可以抛出异常并退出它,也可以根本不使用闭包。读取数组/列表中的所有行并迭代它。