ループ制御
学習内容
- 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の意味するものが異なると理解の妨げとなる。
可能な限り意味のある変数名をつける。
(結果として、条件式の意味が明快になり、かつループ変数のスコープが短くなるので、理解しやすくなる)
最初にコードを読むのは人間である
自分自身、チームメンバー、またはレビュー参加者など。