04 分岐(if文)

1. 分岐処理とは

分岐処理とは、条件に応じて処理の流れを変える仕組みです。 「もし〜なら〜する、そうでなければ〜する」という日常の判断と同じ考え方です。


2. if文(条件が真のときだけ実行)

if ( 条件 )
    処理
endif
開始 条件 真? 処理 終了
整数型: score ← 80
文字列型: result

if ( score が 70 以上 )
    result ← "合格"
endif
// score=80 は 70以上 → result = "合格"

3. if〜else文(真・偽で処理を分ける)

if ( 条件 )
    処理1   // 条件が真のとき
else
    処理2   // 条件が偽のとき
endif
開始 条件 真? 処理1 処理2 終了
整数型: x ← 3
文字列型: msg

if ( x MOD 2 が 0 と等しい )
    msg ← "偶数"
else
    msg ← "奇数"
endif
// 3 MOD 2 = 1(偽) → msg = "奇数"

4. if〜elseif〜else文(3つ以上に分岐)

if ( 条件1 )
    処理1
elseif ( 条件2 )
    処理2
else
    処理3
endif
重要:条件は上から順に評価され、最初に真になった条件の処理だけが実行されます。 残りの条件は評価されません。
整数型: score ← 75
文字列型: grade

if ( score が 90 以上 )
    grade ← "A"
elseif ( score が 70 以上 )
    grade ← "B"
elseif ( score が 50 以上 )
    grade ← "C"
else
    grade ← "D"
endif
// score=75 → 90以上は偽 → 70以上は真 → grade = "B"
開始 score ≧ 90? A score ≧ 70? B C or D ... 終了

5. ネストされたif文

if文の中にさらにif文を書くことができます。

整数型: N ← 8

if ( N が 0 より大きい )
    if ( N MOD 2 が 0 と等しい )
        output ← "正の偶数"
    else
        output ← "正の奇数"
    endif
else
    output ← "0以下"
endif
// N=8 → 正の数かつ偶数 → output = "正の偶数"
読み方のコツ:インデント(字下げ)に注目して、どの if〜endif が対応しているかを確認しながら読みましょう。

6. 理解度チェック問題

問題04-1

次のコードを実行した結果として正しいものを選びなさい。

整数型: score ← 80
文字列型: result

if ( score が 70 以上 )
    result ← "合格"
else
    result ← "不合格"
endif

result を出力
解説を表示 正解:ア
score=80 は 70 以上(真)→ if の処理が実行 → result = "合格"

問題04-2

次のコードを実行した結果として正しいものを選びなさい。

整数型: score ← 85
文字列型: grade

if ( score が 90 以上 )
    grade ← "A"
elseif ( score が 70 以上 )
    grade ← "B"
elseif ( score が 50 以上 )
    grade ← "C"
else
    grade ← "D"
endif

grade を出力
解説を表示 正解:エ
score=85 → 90以上は偽 → 70以上は真 → grade = "B"
elseif は上から順に評価され、最初に真になった条件だけが実行されます。

問題04-3

次のコードを実行した結果として正しいものを選びなさい。

整数型: A ← 75
整数型: B ← 60
文字列型: result

if ( A が 70 以上 かつ B が 70 以上 )
    result ← "両方合格"
else
    result ← "どちらか不合格"
endif

result を出力
解説を表示 正解:イ
A=75(70以上:真)かつ B=60(70以上:偽)→ かつ なので全体は偽 → result = "どちらか不合格"

問題04-4

次のコードを実行した結果として正しいものを選びなさい。

整数型: N ← 8
文字列型: output

if ( N が 0 より大きい )
    if ( N MOD 2 が 0 と等しい )
        output ← "正の偶数"
    else
        output ← "正の奇数"
    endif
else
    output ← "0以下"
endif

output を出力
解説を表示 正解:ウ
N=8 → 0より大きい(真)→ 内側へ → 8 MOD 2 = 0(真)→ output = "正の偶数"

問題04-5

次のコードを実行した結果として正しいものを選びなさい。

整数型: x ← 7
論理型: flag ← false

if ( x * 2 が 20 より小さい )
    flag ← true
endif

flag を出力
解説を表示 正解:エ
x * 2 = 14 → 14 は 20 より小さい(真)→ flag ← true