繰り返し
「配列内から特定の値を探す」課題に対して:
// Eチャンのコード
// 配列arは、具体的に与えられていて ar.length = 5
var i = 0;
while (i < 5) {
if (x == ar[i]) {
print("found");
} else {
print("not found");
}
i = i + 1;
}
ナールホド。これはこれでいいんじゃないの。
その前の経緯
まず、iが定数0, 1, 2, 3, 4 のときの、「もし見つかったら」を、
- if (x == ar[0])
- if (x == ar[1])
- if (x == ar[2])
- if (x == ar[3])
- if (x == ar[4])
のように列挙してもらった。0から開始についてはシツコク説明済み。そこから、変数iによる記述
- if (x == ar[i])
を導く。
注意とか教訓とか
繰り返しに関しては、
- 繰り返しごとに変わっていくカウンタ変数/作業用変数を探してもらう。
- 繰り返しの開始と終了の条件を明確にする。
- まずはwhileだけを扱う。
ループの途中から脱出はけっこう難しいようだ。
次のようなパターン化も有効か(試してない)。
var k = 初期値;
while (kを含む条件) {
kを含む動作
kを減らす/増やす
}