if文・条件分岐
まず結論
IPAの擬似コードでは条件分岐を「もし〜ならば」「そうでなければ」「もし終わり」で書きます。比較演算子と論理演算子を組み合わせて複雑な条件も書けます。科目Bの大半の問題にif文が登場します。
if文の基本構造
if のみ
もし 条件 ならば
処理A
もし終わり
if-else
もし 条件 ならば
処理A
そうでなければ
処理B
もし終わり
if-elseif-else(多分岐)
もし 条件1 ならば
処理A
そうでなく, もし 条件2 ならば
処理B
そうでなければ
処理C
もし終わり
比較演算子・論理演算子一覧
| 演算子 | 意味 | 擬似コード例 |
|---|---|---|
| = | 等しい | a = 5 |
| ≠ | 等しくない | a ≠ 0 |
| < | より小さい | a < 10 |
| > | より大きい | a > 0 |
| ≦ | 以下 | a ≦ n |
| ≧ | 以上 | a ≧ 1 |
| かつ (AND) | 両方真 | a > 0 かつ a < 10 |
| または (OR) | どちらか真 | a = 0 または a = 1 |
| でない (NOT) | 否定 | a > 0 でない |
←は代入、=は比較:擬似コードでは「←」が代入演算子、「=」が等値比較。混同注意!
実例:点数判定プログラム
// 点数に応じて評価を表示する
score ← 75
もし score ≧ 90 ならば
「優」を表示する
そうでなく, もし score ≧ 70 ならば
「良」を表示する
そうでなく, もし score ≧ 60 ならば
「可」を表示する
そうでなければ
「不可」を表示する
もし終わり
// score=75 のとき → 「良」が表示される
| 条件 | score=75の時 | 実行 |
|---|---|---|
| score ≧ 90 | 75 ≧ 90 → 偽 | スキップ |
| score ≧ 70 | 75 ≧ 70 → 真 | 「良」を表示 ✅ |
| score ≧ 60 | 評価しない | スキップ |
| そうでなければ | 評価しない | スキップ |
ネストされたif文
// if文の中にif文を入れる(ネスト)
もし x > 0 ならば
もし x < 10 ならば
「1以上9以下」を表示する // x が 1〜9
そうでなければ
「10以上」を表示する // x が 10以上
もし終わり
そうでなければ
「0以下」を表示する // x が 0以下
もし終わり
インデント(字下げ)でネストの深さを表現。「もし終わり」がどの「もし」に対応するか、インデントで判断しましょう。
🎯 試験での出方
- 条件式を評価してif文の実行パスを追う問題(科目B頻出)
- 「□に入る条件式」を選ぶ穴埋め問題
- かつ(AND)・または(OR)を含む複合条件の真偽判定
- ネストされたif文でどのパスを通るか追跡する問題
⚠️ よくある間違い
- 「=は代入」→ ✗ 擬似コードで=は比較、代入は←
- 「elseifの条件を全部評価する」→ ✗ 上の条件が真なら下は評価されない
- 「もし終わりを書き忘れる」→ ✗ もしの数と同じ数のもし終わりが必要
✍️ 確認クイズ
Q1. IPAの擬似コードでの代入演算子はどれか。
✅ 正解は②。IPAの擬似コードでは「←」が代入演算子(x ← 5でxに5を代入)。「=」は等値比較演算子として使います。
Q2. x=5のとき、「もし x > 3 かつ x ≦ 5 ならば」の条件の真偽はどれか。
✅ 正解は①。x=5のとき「5>3」は真、「5≦5」も真。「かつ」は両方真のとき真なので、条件全体が真になります。
Q3. score=65のとき、以下の多分岐でどの処理が実行されるか。「もし score≧90 → 優 / そうでなく, もし score≧70 → 良 / そうでなく, もし score≧60 → 可 / そうでなければ → 不可」
✅ 正解は②。65≧90は偽、65≧70は偽、65≧60は真→「可」が表示されます。上の条件が偽のときだけ次の条件を評価します。
Q4. a=5, b=3のとき「もし a > b ならば / x ← a / そうでなければ / x ← b / もし終わり」を実行するとxはいくつになるか。
✅ 正解は②。a=5, b=3のとき「5 > 3」は真なので「x ← a = 5」が実行されます。「そうでなければ」は条件が偽のときのみ実行されます。このアルゴリズムはa,bの最大値をxに代入するもの(2数の最大値)です。
Q5. IPAの擬似コードで「かつ」と「または」を組み合わせた条件「x > 0 かつ x < 10 または x = 100」において x=50 のとき真偽はどれか(演算子の優先度は「かつ」>「または」とする)。
✅ 正解は②。「かつ」が「または」より優先度が高いため、(x>0 かつ x<10) または (x=100)と解釈します。x=50の場合:(50>0=真 かつ 50<10=偽)=偽、50=100=偽。偽または偽=偽。論理演算の優先度(かつ=AND > または=OR)を意識してください。
Sponsor Link