人間は同じことを繰り返すのは、飽きてしまって、不得意ですが、コンピュータは、飽きもせず同じことを繰り返してくれます。この繰り返し処理をこのページで説明します。
クイックジャンプ: 形式 | 例 | 動作確認 | 練習 | 次のレッスンでは?
forは、繰り返しを行いたいとき使う命令です。次のように書きます。
for (代入文1, 条件, 代入文2) 処理; 意味:まず、「代入文1」を実行します。「条件」が満たされなくなるまで、「処理」と「代入文2」を繰り返します。 |
例えば、
for (a=10;a<=20;a=a+1)
x=x+1;
は、aの値を最初10にしてx=x+1を実行し、次にaを1つ増やし11にし、条件a<=20を満たすのでx=x+1を実行し、...(途中省略)...、aを1つ増やして20にし、条件を満たすのでx=x+1を実行します。aをさらに1つ増やすと21になり、条件a<=20を満たしませんので、繰り返し処理を終わります。
上のforでは、aが21になるまで処理をつづけるのですから、
for (a=10;a<21;a=a+1)
x=x+1;
と同じ処理になります。
Q&Aコーナー |
Q: 下のような、forの処理の中にifがあるようなプログラムは正しいですか? for(x=1;x<=5;x=x+1) { if (x>3) x=x+1; x=x-1; } |
A: ここをクリック。 |
プログラム
次のようなプログラムをみてみましょう。
[注意]左端の番号は、プログラムの一部ではありません。各行を区別するために付けた番号です。
プログラム説明
6行目〜10行目のfor文で、xの値を1から3まで1つずつ増やしていきながら、8行目と9行目を実行します。
最終的に、yとzの値がいくつになるか、予想してみてください。その予想が当たっているかを、下の動作確認で調べてください。
それでは、上の例の動作確認をしてみましょう。また、自分なりにプログラムを変更して、動作確認をしてみましょう。動作確認をする前に、Internet
Explorerの設定をちゃんとしているか調べてください。
Cシミュレータによる動作確認をするときは上の絵をクリック
[注意]このリンク先のページはInternet Explore
3.0以降で正しく表示されます。
問題: 次のプログラムでは、最終的にy, zの値はいくつになりますか?
|
解答例: ここをクリック。 |
問題: 上のQ&Aコーナのプログラム(下に再掲)では、最終的にxの値はいくつになりますか?
|
解答例: ここをクリック。 |
問題: 下のプログラムでは、最終的にzの値はいくつになりますか?(複雑ですので、理解しにくくても心配ありません。学習を続けていけば、じきに理解できるようになります。)
|
ヒント: xの値を1にして6行目〜7行目を処理します。次に、xの値を2にしてまた6行目〜7行目を処理します。次に、xの値を3にしてまた6行目〜7行目を処理します。すなわち、6行目〜7行目が3回繰り返されます。6行目〜7行目でのforでは、7行目を2回繰り返します。全体としては、7行目は3×2=6回繰り返されます。 解答例: ここをクリック。 |
for以外の処理を繰り返す命令としてwhileがあります。次のレッスン11では、whileについて説明します。[レッスン11へ]
|
このページの最終更新日は 00/01/25 です。 |
このページに関するご意見・コメントは板谷雄二(itaya@alice.asahi-u.ac.jp)までお願いします。 |
(C) 板谷雄二 |