在Groovy脚本中循环无法正确执行

时间:2020-06-03 15:58:19

标签: groovy

我有由“ For Loop”组成的常规代码段。在for循环中,我检查条件,在其他部分中,我添加Thread.sleep(300000)(等待5分钟)。

for(int i=0; i<8;i++) {
  if(i == 6){
     print 'Condition True'
     break;
  } else {
     try
     {
      Thread.sleep(300000)
     } catch(e) {
          Thread.currentThread().interrupt();
          continue;
     }
}
}

情况1:运行此示例脚本后,在第一次迭代中,它等待5分钟,然后循环终止。我如何以5分钟的间隔等待30分钟,

情况2:如果我在其他部分添加println'Printing',则在第一次迭代中,它等待5分钟,之后等待5秒。我如何以5分钟的间隔等待30分钟。

1 个答案:

答案 0 :(得分:0)

当我运行与描述中相同的代码时,由于条件不正确(i>6),循环甚至没有运行一次。一旦将条件固定为i<6,它就会进入else部分,等待睡眠中提到的时间4次。经过4次后,i==4会因为中断而停止。因此,基本上,如果您更改条件,它将总共等待20分钟(每次等待5分钟)。如果您需要等待总共30分钟,并且添加if条件只是在6次之后停止,那么我看不到对该条件有任何需要。您可以编写如下。

for(int i in 1..6) {
     println "Sleeping...$i"
     try
     {
      Thread.sleep(300000)
     } catch(e) {
          Thread.currentThread().interrupt();
          continue;
     }
}
相关问题