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 になる、という罠の例にもなっているなと後から気付いた。これは怖いんだよな)