読者です 読者をやめる 読者になる 読者になる

Groovyでcontinue、breakを使うにはfindを使う

Groovy

意外や意外、どうもGroovyのeachにはcontinue、breakはないみたい。
findだと、見つかったらtrueを返すと処理完了となるため、それをbreak代わりに使う。
eachの中にif文入れてその条件の時だけ処理するとかも出来るが、全ループ回ってしまうことを考えると、やはり使った方がよさそう。

以下は1から100の数字から10までの奇数を出力する例。

(1..100).find{
  if(it> 10){
    return true
  }
  if(it% 2== 0){
    return false
  }
  println it
}

ただcontinue、breakがないからeach代わりにfindを使うってのは直感的でない気がするなあ。