人間は同じことを繰り返すのは、飽きてしまって、不得意ですが、コンピュータは、飽きもせず同じことを繰り返してくれます。この繰り返し処理をこのページで説明します。
目次
for文 | |
例 | |
動作確認 | |
練習 | |
レッスン11では? |
forは、ある変数をある範囲で1つずつ変えながら、ある処理を繰り返します。次のように書きます。
for 変数:=初期値 to 終了値 do 処理; 意味:変数の値を初期値にし、処理を行う。次に、変数の値を1つ増やし、処理を行う。変数の値を1つずつ増やしながら処理を行い、変数の値が終了値よりも大きくなるまで、繰り返す。 |
:=、to、doの前後の空白は、いくつ入れてもかまいません。また、複数の処理を繰り返したいときは、複数の処理をbeginとendで囲んでブロックにします。
例えば、
for a:=10 to 20 do
x:=x+1;
は、aの値を最初10にしてx:=x+1を実行し、次にaを1つ増やし11にしてx:=x+1を実行し、...(途中省略)...、aを1つ増やして20にしてx:=x+1を実行します。aをさらに1つ増やすと21になり、終了値よりも大きくなりますので、繰り返し処理を終わります。
Q&Aコーナー |
Q:下のような、forの処理の中にifがあるようなプログラムは正しいですか? for x:=1 to 5do begin if x>3 then x:=x+1; x:=x-1; end; |
A:ここをクリック。 |
次のようなプログラムをみてみましょう。
[注意]左端の番号は、プログラムの一部ではありません。各行を区別するために付けた番号です。
6〜10行目のfor文で、xの値を1から3まで変えて、8行目と9行目を実行します。
最終的に、yとzの値がいくつになるか、予想してみてください。その予想が当たっているかを、下の動作確認で調べてください。
それでは、上の例の動作確認をしてみましょう。また、自分なりにプログラムを変更して、動作確認をしてみましょう。動作確認をする前に、Internet Explorerの設定をちゃんとしているか調べてください。
Pascalシミュレータによる動作確認
[注意]このリンク先のページはInternet Explore
3.0以降で正しく表示されます。
for文に慣れてもらうために、少し練習しましょう。
問題:次のプログラムでは、最終的に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回繰り返されます。 解答例:ここをクリック。 |
繰り返す命令として、whileがあります。次のページでは、whileについて説明します。
|
このページの最終更新日は 99/03/20 です。
掲載責任者・ページ作成者: (c)板谷雄二(itaya@alice.asahi-u.ac.jp)