こんにちは!さんです。
高校で数学と情報を教えています!
「プログラミング準備室」では、共通テスト情報Ⅰで出題される、「プログラミング」について学べます。
今回は 「条件繰り返し文」 について解説していきます!

条件分岐文は理解できたよ!次は何を学ぶの?

次は 「条件繰り返し文」 について学んでいこう!

繰り返し?何を繰り返すの?

「ある条件を満たしている間、処理を繰り返す」 のが 条件繰り返し文 だよ!
条件繰り返し文とは?
条件繰り返し文とは、「○○の間は××する」 という仕組みのことです。
例えば、次のような場面を考えてみましょう。
- 「リンゴが残っている間、食べ続ける。」
- 「テストの点数が80点未満の間、再試験を受け続ける。」
- 「信号が赤の間、待ち続ける。」
こうした 「〜の間繰り返す」 をプログラムで書くために、 条件繰り返し文 を使います。
条件繰り返し文の書き方
共通テスト用プログラム表記の例示では、次のように書かれています。

条件繰り返し文は、次のように書きます。
(条件式) の間繰り返す:
L (実行する処理)

だんだん、プログラムに慣れてきた気がする。なんとなく意味はわかるかも!

いいね!じゃあ実際に例を見てみよう!
例題:カウントダウンプログラム
条件繰り返し文を使って、 3から1までカウントダウンする プログラムは次のように書きます。
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
3
2
1

おお!数が減っていくね!

プログラムを順に追っていこう!
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
(1)行目で、変数 count に 3 を代入しています。
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
(2)行目から、条件繰り返し文に入っていきます。
変数 count が 0 以上の間、「 I 」や「 L 」の制御範囲を表す記号がある、(3)行目と(4)行目を実行し続けます。
count には 3 が入っており、条件式 count > 0 を満たしているので(True)、(3)行目と(4)行目を実行します。
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
(3)行目では、count の値を表示します。
count の中には 3 が入っているので、3 が表示されます。
3
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
count に count – 1 の値を代入します。

ここは躓きやすいポイントだよ。
「 = 」は「代入する」という記号です。
数学で使う「 = 」とは異なります。
「( 左 ) = ( 右 )」は「( 右 )の値を、( 左 )に代入する」という意味になります。
ですので、「count – 1 の値を、count に代入」します。
今、count の中には 3 が入っていますので、3 – 1 の 2 が count の中に代入されます。

危ない、危ない。「代入する」って意識が抜けてた。
ここまでが、条件繰り返し文の制御範囲の終わり( L )です。
再び、(2)行目の条件式を確認します。
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
1週目の繰り返し(ループ)が終わりました。
(条件式)の確認です。
count には 2 が入っており、条件式 count > 0 を満たしているので(True)、再び制御範囲を実行します。
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
(3)行目では、count の値を表示します。
count の中には 2 が入っているので、2 が表示されます。
3
2
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
count に count – 1 の値を代入します。
今、count の中には 2 が入っていますので、2 – 1 の 1 が count の中に代入されます。
再び、(2)行目の条件式を確認します。
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
2週目の繰り返し(ループ)が終わりました。
(条件式)の確認です。
count には 1 が入っており、条件式 count > 0 を満たしているので(True)、再び(3)行目と(4)行目を実行します。
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
(3)行目では、count の値を表示します。
count の中には 1 が入っているので、1 が表示されます。
3
2
1
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
count に count – 1 の値を代入します。
今、count の中には 1 が入っていますので、1 – 1 の 0 が count の中に代入されます。
再び、(2)行目の条件式を確認します。
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
3週目の繰り返し(ループ)が終わりました。
(条件式)の確認です。
count には 0 が入っており、条件式 count > 0 を満たしていないので(False)、制御範囲は実行されません。
これで、このプログラムが終了します。

たった4行しかないのに、こんなに長いプログラムなんだ!

1行1行丁寧に、確認すると理解できるよ!

ループが終わったら、「終了!」って表示させたいときは、どうすればいいの?

ループの外に「表示する(“終了!”)」を付け加えればいいね。
(1) count = 3
(2) count > 0 の間繰り返す:
(3) I 表示する(count)
(4) L count = count – 1
(5) 表示する(“終了!”)
3
2
1
終了!

練習問題で理解を深めよう!
練習問題
次のプログラムを実行したときに、表示されるものを答えなさい。
(1) num = 10
(2) num >= 5 の間繰り返す:
(3) I 表示する(num)
(4) L num = num – 2

問題解くのが楽しくなってきた!
10
8
6
まとめ
今回は、「条件繰り返し文」について解説しました。
- 条件繰り返し文 は、 「ある条件を満たしている間、処理を繰り返す」 ための文法です。
- 「(条件式) の間繰り返す:」を使って書きます。

次回は 「順次繰り返し文」 について学んでいくよ!
次に進む → 第7回 順次繰り返し文
コメント