アルゴリズムの要!「分岐」と「繰返し」をマスターしよう
プログラミングの学習において、もっとも大切で、かつもっとも面白いのがこの「分岐」と「繰返し」です。これらを使うことで、コンピュータに「もし〜なら、こうして」と判断させたり、「同じことを100回やって」と命令したりできるようになります。 最初は難しく感じるかもしれませんが、共通テストで使われる「独自のプログラム表記」のルールさえ掴めば、パズルのように解けるようになりますよ!
1. プログラムの「判断」:条件分岐
条件分岐(じょうけんぶんき)とは、ある条件が「成り立つか、成り立たないか」によって、次に行う処理を分ける仕組みのことです。共通テストのプログラム表記では、次のように書きます。
もし 条件 ならば:
| 実行する処理
L
この「|(縦線)」と「L」で囲まれた部分が、条件が合ったときだけ実行される「ブロック」です。
比較に使う記号(比較演算子)
条件を決めるときには、数学でもおなじみの記号を使います。
- \( a = b \) : \( a \) と \( b \) が等しい
- \( a > b \) : \( a \) は \( b \) より大きい
- \( a < b \) : \( a \) は \( b \) より小さい
- \( a \ge b \) : \( a \) は \( b \) 以上
- \( a \le b \) : \( a \) は \( b \) 以下
【ポイント】
多くのプログラミング言語(Pythonなど)では、等しいことを表すのに「==」を使いますが、共通テストの表記では数学と同じ「\( = \)」を使います。ここは間違いやすいので注意しましょう!
「そうでなければ」の処理
条件に合わなかった場合の処理も書くことができます。
もし score \(\ge\) 80 ならば:
| 表示する("合格!")
そうでなければ:
| 表示する("もう少し!")
L
豆知識:
コンピュータは「Yes (真:しん)」か「No (偽:ぎ)」の2択でしか判断できません。複雑な条件も、結局はこの2択の組み合わせでできています。
2. プログラムの「根気」:繰返し
繰返し(くりかえし)は、同じ処理を何度も自動で行わせる仕組みです。人間なら飽きてしまうような1万回の計算も、コンピュータなら一瞬です!
共通テストでは、主に次のような書き方をします。
変数名 を 初期値 から 終了値 まで 増分 ずつ増やしながら繰り返す:
| 実行する処理
L
例えば、1から5まで表示したいときはこうなります:
i を 1 から 5 まで 1 ずつ増やしながら繰り返す:
| 表示する(i)
L
【よくある間違い】
「5まで」と書いた場合、5を含むのか含まないのか迷うことがあります。共通テストの表記では、基本的に終了値(この場合は5)まで含めて処理を行います。
また、「1ずつ増やしながら」を忘れると、ずっと同じ数字のまま終わらない(無限ループ)になってしまうイメージですが、共通テストの問題では書き方が決まっているので、落ち着いて「どこからどこまでか」を確認しましょう。
豆知識:
増分を「2」にすれば、1, 3, 5, 7...と飛ばして数えることもできますし、「1 ずつ減らしながら」と書けばカウントダウンもできます。
3. 応用:分岐と繰返しを組み合わせる
実際の試験では、これらを組み合わせて使います。例えば、「1から100までの数字の中で、3の倍数だけを表示する」といったプログラムです。
(1) i を 1 から 100 まで 1 ずつ増やしながら繰り返す:
(2) | もし i % 3 \( = \) 0 ならば:
(3) | | 表示する(i)
(4) | L
(5) L
【演算子の復習】
ここで使った「%」は、割り算の余りを求める記号です。 \( i \% 3 = 0 \) というのは、「\( i \) を 3 で割った余りが 0 (つまり3の倍数)」という意味になります。これも頻出のテクニックです!
ポイント:
プログラムの中にさらに別のプログラムが入っている構造を「入れ子(ネスト)」と呼びます。縦線「|」の数を見ることで、今どのブロックの中にいるのかを確認するのがコツです。
4. まとめ:解く時のコツ
「分岐と繰返し」の問題に出会ったら、以下のステップで考えましょう。
- 変数の変化を追いかける: 表の端っこに、変数の今の値をメモしながら解きましょう(これを「トレース」と呼びます)。
- 条件を日本語に直す: \( i \% 2 = 1 \) なら「\( i \) が奇数のとき」といったように、言葉に置き換えるとミスが減ります。
- 終わりの数に注目: 繰返しが「どこまで」行われるのか、最後の1回が実行されるかを確認しましょう。
最初は少し複雑に見えるかもしれませんが、やっていることは「もし〜なら」と「〜の間繰り返す」の2つだけです。たくさんの問題に触れて、コンピュータの考え方に慣れていきましょう。応援しています!