continue のはなし

たとえばどういう時に continue を使うかといえば
(以下擬似コード

for (item <- list) {
  if (...) {
    switch (...) {
      ...
      if (...) {
        continue;
      }
    }
  }

  print(item);
}

list の中の item の中から、条件に合うもののみ print する、というコードである
条件チェックが複雑なコードの中に埋もれるのであれば、上で示したようなコードにせざるをえない
(フラグ変数を導入するという手もあるが、コードは余計にややこしくなる)
もちろん、簡単に別の関数にくくりだせるのであれば

if (cond(item)) {
  print(item);
}

のようにしたほうがいいわけであるが、普通は簡単にくくりだせる場合ばかりではない
次回予告。なぜ構造化プログラミング=gotoなしプログラミングという信仰が生まれたか?
(continue を break にすると外側のループの break のつもりが内側の switch の break になる、という罠の例にもなっているなと後から気付いた。これは怖いんだよな)