while文
while の条件式が真の間、while と endwhileの間にある処理を行う繰返し処理である。 同じ処理を何回も繰り返して実行したい場合に使う。条件式が偽の場合、endwhile の次行へと進む。
なお、endwhileの行は必ず「実行せず」のため何も書かない。トレースにおける手間を減らすためである。
while の条件式が真の場合と偽の場合で、実行する行とその説明は、以下の通りである。 このプログラムと流れ図を見比べると、 実行する行がどこなのかを理解しやすいだろう。
| 11:a ← 4 | ①実行 | |
| 12: while (a < 5) | ②実行 「4<5」は真 | ④実行 「5 < 5」は偽 |
| 13: a←a + 1 | ③実行 | ⑤実行せず |
| 14: endwhile | ||
| 15: a を出力する | ⑥実行 (while の繰返しを抜け次行へ) |
→「5」を出力する。

do-while文
doとともに記述されるwhileの条件式が真の間, doとwhileの間にある処理を行う繰返し処理である。 まずdoとwhile の間にある処理を実行し、その後に条件式を見極める。 条件式の真偽にかかわらず、一度は必ずdoとwhileの間にある処理を実行する。 条件式が偽の場合、while の次行へと進む。
なお、 doの行は必ず 「実行せず」 のため何も書かない。トレースにおける手間を減らすためである。
| 21:a ← 3 | ①実行 | |
| 22: do | ||
| 23: a←a + 1 | ②実行 | ④実行 |
| 24: while (a < 5) | ③実行「4<5」は真 | ⑤実行 「5 < 5」は偽 |
| 25: a を出力する | | ⑥実行 (doの繰返しを抜け次行へ) |
→「5」を出力する。

無限ループ
繰返し処理が永久に繰り返す状態である。 繰返し処理は、通常、何回か繰り返したあと、その繰返し処理を終了し、次の処理へ進むが、 無限ループとなった場合、 処理が次に進まずエラーとなり,プログラムが停止する。
空所に選択肢を当てはめると、 無限ループとなる場合、その選択肢は不正解である。
| 31: 整数型: i |
| 32: i ← 1 |
| 33: while (i > 0) |
| 34:a |
| 35: endwhile |
aに「i ← i + 1」 を当てはめると条件式は真であり続けるため、無限ループとなる。
(参考)情報処理教科書 出るとこだけ!基本情報技術者[科目B]第4版 橋本 祐史 (著) 翔泳社


コメント