このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

繰り返し

「配列内から特定の値を探す」課題に対して:


// 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 のときの、「もし見つかったら」を、

  1. if (x == ar[0])
  2. if (x == ar[1])
  3. if (x == ar[2])
  4. if (x == ar[3])
  5. if (x == ar[4])

のように列挙してもらった。0から開始についてはシツコク説明済み。そこから、変数iによる記述

  • if (x == ar[i])

を導く。

注意とか教訓とか

繰り返しに関しては、

  • 繰り返しごとに変わっていくカウンタ変数/作業用変数を探してもらう。
  • 繰り返しの開始と終了の条件を明確にする。
  • まずはwhileだけを扱う。

ループの途中から脱出はけっこう難しいようだ。

次のようなパターン化も有効か(試してない)。


var k = 初期値;
while (kを含む条件) {
kを含む動作
kを減らす/増やす
}