ループ制御

学習内容

  • Aizu Online Judge
    • 0000 QQ
    • 0001 List of Top 3 Hills
    • 0002 Digit Number
    • 0003 Is it a Right Triangle?
  • Code Complete 第2版 上
    • 第16章 ループの制御

for文の利点

ループの先頭で一度セットアップしたら、後は忘れてしまえる。
ループの先頭にコードがまとめられているので、修正・変更に強い。

for文とwhile文

for文は単純な条件に使用する。
while文は終了条件を厳密に制御できる。(複雑な条件に使用する)

break文

break文を使う理由が説明できないなら、使わない。
(break文を使用すると、終了条件がループの中にあるため、ループをブラックボックスとして扱えなくなる)
(ループの途中にループの出口がある構造の方が、人間の考える反復制御のモデルに近い)

単純なもの、小さくて理解しやすいものから

一度に集中しなければならないコードの量をできるだけ少なくする。

i,j,kなどを使わない

ループのネストが深い場合、ループ変数の名前にi,j,kを多用していると理解が困難になる。
javaではfor文の条件式内で変数を宣言できるため、ループ変数のスコープがfor文内に限定される。
そのため、i,j,kといった変数名でも理解の妨げになりづらい。
しかし、C言語ではfor文の条件式内で変数を宣言できず、スコープが長くなる。
そのため、複数のループで同じループ変数が使用されることがある。
このとき、それぞれのループでi,j,kの意味するものが異なると理解の妨げとなる。
可能な限り意味のある変数名をつける。
(結果として、条件式の意味が明快になり、かつループ変数のスコープが短くなるので、理解しやすくなる)

最初にコードを読むのは人間である

自分自身、チームメンバー、またはレビュー参加者など。