16.サンプルの問題5(中に条件)
DNCL 速習

📖 例題

このサンプルの問題5は、「ブロック構造の中にブロック構造がある」プログラムです。

繰り返しの中で変数「 i 」の値を一つずつ増やしていき、「 i 」の値が「3の倍数」のときには「3の倍数」と表示します。

📖 プログラム

実際の入試問題では、このように「ブロック構造の中にブロック構造がある」プログラムがよく出題されます。

そのために、一見プログラムが複雑で、難解に思えるかもしれません。
ブロックの範囲を注意深く確かめて、それぞれのブロックが何をしているのかを読み解くようにしてください。

👩‍🏫繰り返しの中の条件分岐 👨‍🏫

サンプルの問題5では、「繰り返しの中に条件分岐」があります。
このように「ブロック構造」の中に「ブロック構造」が入っている構造を「入れ子構造」といいます。

こうしたプログラムの場合、どこからどこまでがブロックの中なのかが分かりにくくなるために、プログラムを読み解くのが難しくなります。 それで、ブロックの中のブロックを外のブロックと区別するための、「」や「 」といった「インデント」を表す記号に注意するようにしてください。

このように、試験問題の中のプログラムに枠線を書き込んで、どこまでがブロックの中なのかを明確にしておくといいでしょう。

では、まずこのプログラムの赤い枠の中の「繰り返し」ブロックについて考えてみましょう。

この繰り返しは、「回数を指定」する繰り返しです。繰り返すごとに、変数「 i 」の値が「1」から「20」まで「1」ずつ増えていきます。

次に、繰り返しの中の条件分岐ブロックです。「もし ならば」の条件式は、「 i % 3 == 0 」となっています。
これは、「iの値を3で割ったあまりが0と等しい」かどうかということですから、「iの値が3の倍数ならばtrue」ということになります。
それで、繰り返すごとに1つずつ増えていく「 i 」の値が「3」の倍数のときには、「 i 」の値と「3の倍数」という文字列を表示しますが、 「 i 」の値が「3」の倍数でなければ、単に「 i 」の値を表示するという処理をすることになっています。

変数「 i 」の変化と「3の倍数」のときの処理を、表にするとこのようになります。

変数 i の値i % 3 == 0
3の倍数
3の倍数
3の倍数
10
11
123の倍数
13
14
153の倍数
16
17
183の倍数
19
20

では、実際にサンプルの問題5のプログラムを実行して、表のとおりになるか確かめてみましょう。

🤖 練習問題 🤖

📝1

以下のプログラムの空いている行に、変数「 i 」の値が「7の倍数」のときには「7の倍数」と表示するように条件を追加してください。

📖 解説

👩‍🏫 「7の倍数」なので、条件式は「 i を7で割ったあまりが0と等しい」なので、「 i % 7 == 0 」となります。

それで、以下のコードを、空いている行に追加します。

そうでなく もし i % 7 == 0 ならば:
    表示する( i , "は7の倍数" )

💡 ポイント

  1. ブロック構造の中にブロック構造がある」構造を、「入れ子構造」という。
  2. ブロックの中のブロックを外のブロックと区別するための、「」や「 」といった「インデント」を表す記号に注意する。
  3. 試験問題の中のプログラムに枠線を書き込んで、どこまでがブロックの中なのかを明確にしておくといい。