Basic Pascal Tutorial/Chapter 3/FOR..DO/ja: what changed
Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | - | ||
| 2 | - | ||
| 3 | - | ||
| 4 | - | ||
| 5 | - | ||
| 6 | - | ||
| 7 | - | ||
| 8 | 1 | ## FOR...DO Loops (著者: Tao Yue, 状態: 原文のまま修正なし) | |
| 9 | 2 | ||
| 10 | 3 | FOR...DO は Pascal におけるループを構成するためのものである。もちろん、まず "ループとは何か?"という疑問が湧くだろう。 | |
| 11 | 4 | ||
| 12 | 5 | ### Loops | |
| 13 | 6 | ||
| 14 | 7 | ループするとは文や複合文が、ある条件が満たされるまで繰り返し繰り返し実行されることを意味する。 | |
| 15 | 8 | ||
| 16 | 9 | 3つのタイプのループがある。 | |
| 17 | 10 | ||
| 18 | 11 | * 固定反復(fixed repetition) - 固定された回数のみ反復する | |
| 19 | 12 | * プリテスト(pretest) - ブール式をテストし、TRUE ならループに入る | |
| 20 | 13 | * ポストテスト(posttest) - ループを実行し、それからブール式をテストする | |
| 21 | 14 | ||
| 22 | 15 | ### FOR...DO Loop | |
| 23 | 16 | ||
| 24 | 17 | Pascal においては固定反復が for ループである。一般的な形式は次の通りである。 | |
| 25 | 18 | ``` | |
| 26 | 19 | for index := 初期値Low to 終了値High do | |
| 27 | 20 | 文; | |
| 28 | 21 | ``` | |
| 29 | 22 | ||
| 30 | 23 | インデックス変数は **順序型** データでなくてはならない。このインデックスはループ本体の中で計算に用いられるが、その値は変えることはできない。たとえば、 `count:=5` とするとプログラムに例外を引き起こす。 | |
| 31 | 24 | ||
| 32 | 25 | Pascal では、 `for` ループは1の増加のみがカウントできる。 ループは _break_ 文で中断できる。 インデックスを利用した例を次に示す。 | |
| 33 | 26 | ``` | |
| 34 | 27 | sum := 0; | |
| 35 | 28 | for count := 1 to 100 do | |
| 36 | 29 | begin | |
| 37 | 30 | sum := sum + count; | |
| 38 | 31 | if sum = 38 then break; | |
| 39 | 32 | end; | |
| 40 | 33 | ``` | |
| 41 | 34 | ||
| 42 | 35 | コンピュータは、終了になるまで延々合計を求め続ける。しかし、それは数学者ガウスが簡単な近道で合計を求めたやり方よりもはるかに速い (`1+100 = 101. 2+99 = 101`。パターンがわかっただろうか? 100の数字があるので、そのパターンが50回繰り返される `101*50 = 5050`。これは高等数学ではないし、ガウスに由来するというのもたぶん作り話だろう)。 | |
| 43 | 36 | ||
| 44 | 37 | `for-to-do` ループでは、初期値は終了値よりも小さくなくてはならない。さもないとループ自体が実行されない。もし、カウントダウンしたいのなら、 `for-downto-do` ループを使うべきである。 | |
| 45 | 38 | ``` | |
| 46 | 39 | for index := 初期値High downto 終了値Low do | |
| 47 | 40 | 文; | |
| 48 | 41 | ``` | |
| 49 | 42 | ||
| 50 | 43 | ## See also | |
| 51 | 44 | ||
| 52 | 45 | [[Basic Pascal Tutorial/Chapter 3/WHILE..DO/ja|While ...Do loops/ja]] | |
| 53 | 46 | ||
| 54 | - | ||
| 47 | + | [[Until/ja|Repeat... Until loops/ja]] | |
| 55 | 48 | ||
| 56 | - | ||
| 49 | + | [[for-in loop/ja|For... in loops/ja]] | |
| 57 | 50 | ||
| 58 | 51 | ||
| 59 | 52 | ||
| 60 | 53 | [[Basic Pascal Tutorial/Chapter 3/CASE/ja|previous]] | [[Basic Pascal Tutorial/Contents/ja|contents]] | [[Basic Pascal Tutorial/Chapter 3/WHILE..DO/ja|next]] | |
| 61 | 54 | ---|---|--- | |
| 62 | 55 | ||
| 63 | 56 | --- | |
| 64 | 57 | *From the Free Pascal wiki, page "FOR..DO/ja", as the Internet Archive kept it on 2023-03-22, last changed on 2022-08-20. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
