基本情報技術者試験 (FE) 科目 B — 擬似言語

条件分岐 (if / elseif / else) の書き方

定義

擬似言語の条件分岐は if (条件) から始まり、endif で閉じる。else if (中間分岐) は elseif、else (それ以外) は else を挟む。条件式は必ず () で囲む。

if / elseif / else / endif の 4 点セット

基本情報の条件分岐は、次の 4 つのキーワードで組み立てます。

if (条件A)
  // 条件A が true のときの処理
elseif (条件B)
  // 条件A が false かつ 条件B が true のときの処理
else
  // 上のどれにも当てはまらないときの処理
endif

条件式は必ず (...) で囲みます。elseifelse は省略可能で、 「true のときだけ何かをやる」用途なら if endif だけでも書けます。 一方 endif は絶対に必要で、これがないとどこまでが if の中身か分からず構文エラーになります。

ブラウザで動かしてみる

点数によって成績を「優 / 良 / 不可」に分ける典型例です。一行ずつ実行 を押していくと、どの分岐に入るかを目で追えます。

待機中
エディタを読み込み中…

変数

まだ実行されていません

出力

まだ出力はありません (print で表示します)

点数 を 90 や 55 に書き換えて再実行すると、 出力が 不可 に変わります。境界値 (60, 80) をまたぐ変更を試すと、> の違いが実感できます。

比較演算子は 6 種類

  • = 等しい (代入の と混同しないこと)
  • 等しくない (半角 != でも可)
  • <, > より小さい / より大きい
  • , 以下 / 以上 (境界値を含む。半角 <=, >= でも可)

試験では「以上」なのか「より大きい」なのかを引っかけてくる問題が多く出ます。「以上・以下は境界値を含む」 を常に意識しましょう。

and / or / not で条件を組み合わせる

複数の条件を組み合わせるには and (かつ)、or (または)、not (でない) を使います。 例えば「気温が 15℃ 以上かつ 30℃ 未満」は次のように書けます。

待機中
エディタを読み込み中…

変数

まだ実行されていません

出力

まだ出力はありません (print で表示します)

条件式は左から順に評価されます。and は両方が真のときだけ真、or はどちらかが真なら真、not は真偽をひっくり返す — この 3 つを覚えれば大抵の分岐は表現できます。

試験でつまずきやすいポイント

  • 括弧忘れ: if 点数 > 80 のように括弧を書き忘れると構文エラー
  • endif 忘れ: ネストした if で内側の endif を書き忘れて外側が閉じない、というミスがよくある
  • = と ← の混同: 比較で 点数 ← 80 と書くと代入になり、条件式にならない
  • elseif は 1 語: else if と分けて書くと構文エラー

条件分岐が読めるようになったら、次は 繰り返し (while) で「同じ処理を何度も実行する書き方」に進みましょう。

よくある疑問

Q.elseif は else if と分けて書けますか?
A.基本情報の擬似言語では 1 語の elseif で書きます。else if のように 2 語に分けると構文エラーになります。試験の選択肢でも elseif で統一されています。
Q.条件式の括弧は省略できますか?
A.できません。if / elseif / while など条件を受け取る構文では、条件式全体を必ず () で囲みます。これは他の言語 (Python など) と違う点なので注意してください。
Q.then を書くこともありますか?
A.IPA 公表の Ver.5.1 では then は書きません。ただし過去の擬似言語では then が付く記法もあったため、この実行シミュレーターでは then を書いても書かなくても動くよう寛容に扱います。

理解できたか試す / 自由に動かす

この構文をもっと練習する(おすすめ書籍)

本セクションはAmazonアソシエイトのリンクを含みます。

オンライン個別指導

プログラムの読み方でつまずいたら。

たいてっくが、アルゴリズムの追い方から SQL・データベース設計まで、1対1で学習をサポートします。「コードを目で追っても何をしているか分からない」段階からで大丈夫です。まずは無料相談から。

無料相談を予約する →
受講者の声 (DB・SQL コース)
menta レビュー原文を見る →
  • 教え方も上手で、お人柄も良いメンターです。DB周りの知識はもちろん、何より、しっかり教えてあげようという姿勢がとてもありがたかったです。データベース、SQLの学習を考えている方にはおススメです。
    H 様DB・SQL コース受講
  • 体系的に知識を教えてくださり、実際の業務でも大変役立っております。特に短い時間で効率よく知識の習得や、練習をできているのは期待以上でした。
    M 様DB・SQL コース受講
  • 大変充実したコンテンツでわかりやすいご説明をありがとうございました。基本的な質問にも丁寧にご説明いただき、また業務のご相談にも乗って頂き大変有意義な時間でした。
    K 様DB・SQL コース受講