こんにちは、数強塾代表の藤原進之介です。この記事は参考書『藤原進之介の最強120講義』の第50講「共通テスト用プログラム表記③条件分岐」のWeb版です。共通テスト「情報Ⅰ」での重要度はS(毎年出る。落とすと致命的)、情報Ⅱでの接続先は(4)情報システムとプログラミングです。
プログラム表記シリーズの第3回です。土台となる代入の話は第48講(変数と代入)に、演算子の一覧は第49講に譲ります。本講は「条件で処理を分ける」ことだけに絞ります。反復や配列にも踏み込みません。1つずつ確実に固めないと、第3問は必ずどこかで崩れるからです。
1. この講の問い
「60点以上なら合格」を式に直すとき、> と >= のどちらを書くのでしょうか。そして条件を並べる順序を入れ替えると、なぜ結果まで変わってしまうのでしょうか。
2. 結論
条件分岐は「上から順に条件を評価し、最初に真になった枝だけを実行して、残りは飛ばす」仕組みです。だから条件を書く順序そのものが意味を持ちます。
失点の大半は「境界」で起きます。「以上」「未満」「より大きい」を日本語から式へ翻訳する瞬間が最大の危険地帯で、> と >= の1文字で答えが変わります。
自分の書いた分岐は、網羅性(どの入力も必ずどこかの枝に入るか)と排他性(同じ入力が2つの枝に入らないか)の2点で検査してください。この2語が、そのまま情報Ⅱのテスト設計になります。
3. なぜそうなるのか
3-1. まず書式を一次資料で確定する
推測で文法を書くと事故ります。大学入試センターが公表した「令和7年度大学入学共通テスト 試作問題『情報』の概要」(2022年11月9日公表)の第5節「共通テスト用プログラム表記の例示」に、条件分岐は「8制御文(条件分岐)」として置かれています。使う日本語は3つだけです。
| 書き方 | 意味 | Python |
|---|---|---|
もし 条件 ならば: |
条件が真のとき、ここに入る | if |
そうでなくもし 条件 ならば: |
上の条件が偽で、かつこの条件が真のとき | elif |
そうでなければ: |
どの条件も偽だったとき | else |
そして最も見落とされているのが、範囲の示し方です。例示にはこう注記されています。
※|と⎿で制御範囲を表し,⎿は制御文の終わりを示す
大学入試センター「令和7年度大学入学共通テスト 試作問題『情報』の概要」第5節(2022年11月9日公表)
つまり共通テスト用プログラム表記は、字下げ(インデント)ではなく | と ⎿ という記号で「どこまでがこの分岐の中身か」を示します。Python は字下げの深さで範囲を決めますが、この表記は違います。| が続いている間はその制御文の中で、⎿ が付いた行がその制御文の最後の行です。
この差が効くのが、同じ例示に載っている二分探索のプログラムです。その15行目はこうなっています。
⎿ ⎿ migi=aida-1
⎿ が2つ重なっています。これは「内側の条件分岐の終わりと外側の繰返しの終わりが、同じ行で同時に来ている」ことを表しています。Python なら字下げが2段戻るところです。ここを知らずに本番で初めて見ると、確実に一瞬止まります。
比較演算と論理演算も、同じ例示の第5項・第6項で決まっています。
- 比較演算:
==(等しい)、!=(等しくない)、>、<、>=、<=の6つ - 論理演算:
and(論理積)、or(論理和)、not(否定)
第48講で確かめたとおり、この表記の = は「代入」です。だから比較には == を使います。そして第47講(アルゴリズムと流れ図)で確認したとおり、同じ資料でも流れ図の側では比較を = と書きます(例示20ページの流れ図に「中央の値 =探索値」とあります)。同じ記号が、流れ図とプログラム表記で意味が入れ替わる。ここは意識して読み分けてください。
3-2. 「上から順に評価される」とは何が起きているのか
条件分岐でいちばん誤解されるのは、「条件をぜんぶ調べて、当てはまるものを実行する」という思い込みです。実際は違います。上から順に1つずつ条件を調べ、最初に真になった枝を実行したら、そこで分岐全体を抜けます。残りの条件は評価すらされません。
大学入試センターの例示そのものが、この読み方を要求しています。例示にはこういう多分岐があります。
もし x >= 3 ならば:
| x = x - 1
そうでなくもし x < 0 ならば:
| x = x * 2
そうでなければ:
⎿ y = y * 2
2番目の x < 0 という条件は、単独で読めば「x が負のとき」です。ところがここに来ている時点で、x >= 3 が偽であることは確定しています。だから実際に x = x * 2 が動くのは x が負のときで、3番目の そうでなければ に落ちるのは 0 <= x < 3 のときになります。
「そうでなくもし」の条件は、前の条件が偽であるという文脈の中でしか意味を持ちません。単独で読まないでください。
3-3. 境界の1文字が答えを変える
日本語を式に翻訳するところで、毎年多くの受験生が落としています。
| 日本語 | 式 | 境界の値を含む? |
|---|---|---|
| 60以上 | x >= 60 |
含む |
| 60以下 | x <= 60 |
含む |
| 60より大きい(60を超える) | x > 60 |
含まない |
| 60未満(60より小さい) | x < 60 |
含まない |
「60点以上なら合格」を x > 60 と書くとどうなるでしょうか。0点から100点までの101通りのうち、食い違うのはちょうど60点の1点だけです。だから普通に何点か試しても、まず気づきません。59点で試せば両方「不合格」、61点で試せば両方「合格」。60点そのものを入れたときだけ、答えが割れます。
境界のバグは、点数に直結するのに自分では見つけにくい。対策はただ1つで、境界の値そのものと、その両隣(59・60・61)を必ず試すことです。第54講(トレース)の表が、そのための道具になります。
3-4. なぜ順序を入れ替えると壊れるのか
多分岐でいちばん怖いのがこれです。先に広い条件を書くと、後ろの狭い条件へ永久に到達しなくなります。
点数から3段階の評定を出す分岐を考えます。80点以上がA、60点以上79点以下がB、それ未満がC。正しい書き方はこうです。
もし tokuten >= 80 ならば:
| hyotei = "A"
そうでなくもし tokuten >= 60 ならば:
| hyotei = "B"
そうでなければ:
⎿ hyotei = "C"
ここで1行目と3行目を入れ替えてみます。
もし tokuten >= 60 ならば:
| hyotei = "B"
そうでなくもし tokuten >= 80 ならば:
| hyotei = "A"
そうでなければ:
⎿ hyotei = "C"
90点の答案が来たとします。1つ目の条件 tokuten >= 60 は真です。だからhyotei = "A" ではなく hyotei = "B" を実行して、そこで終わり。2つ目の tokuten >= 80 は評価すらされません。
この壊れた版では、0点から100点までの101通りをすべて入れても、評定Aが一度も出ません。条件そのものは書いてあるのに、到達できないから死んでいます。しかも「Bが出ている」ので動いてはいますし、エラーも出ません。黙って間違った答えを返す——テストで見つけられない種類の誤りです。
ではどう並べればよいのか。狭い条件(厳しい条件)から先に書きます。上限のない範囲を扱うときは、値の大きい順(あるいは小さい順)に一直線に並べれば、順序の事故は起きません。
3-5. なぜ「そうでなければ」が要るのか——網羅性と排他性
自分の分岐を検査する軸は、2つしかありません。
(1) 網羅性:どの入力も、必ずどこかの枝に入るか。
条件を並べただけでは、どこにも入らない入力が残ることがあります。範囲を両側から挟んで tokuten >= 80 and tokuten <= 100 のように書くと、101点や −1点はどの枝にも入りません。そのとき変数 hyotei には何も代入されず、「値が入っていない変数を使う」という、原因の見えにくいエラーになります。最後を そうでなければ: で閉じておけば、取りこぼしは構造的に起きません。「その他ぜんぶ」を引き受ける枝が1本あるからです。
(2) 排他性:同じ入力が2つの枝に入らないか。もし を3つ並べて書くと(そうでなくもし を使わないと)、上から順にすべての条件が独立に評価されます。90点は tokuten >= 80 も tokuten >= 60 も真なので、両方の代入が実行され、後から代入したほうが前を上書きします。書いた順序次第で、意図と逆の値が残ります。
そうでなくもし は「前の条件が偽のときだけ」という前提を自動的に付けてくれます。書いた瞬間に排他性が保証される——これが もし を並べることとの決定的な違いです。
3-6. ネストは浅く保つ
条件分岐の中に条件分岐を入れることを入れ子(ネスト)といいます。2教科とも60点以上で合格、という判定を入れ子で書くとこうなります。
もし kokugo >= 60 ならば:
| もし sugaku >= 60 ならば:
| | hantei = "合格"
| そうでなければ:
| ⎿ hantei = "不合格"
そうでなければ:
⎿ hantei = "不合格"
同じことは and で1段に書けます。
もし kokugo >= 60 and sugaku >= 60 ならば:
| hantei = "合格"
そうでなければ:
⎿ hantei = "不合格"
入れ子が深いほど | の本数が増え、読み手は「いま自分は何段目にいるのか」を数えることに脳を使います。共通テストの制限時間では、これが致命傷になります。第43講(論理演算・真理値表・ベン図)で扱った and / or / not を使って条件をまとめれば、入れ子は減らせます。
否定を外へ出したいときはド・モルガンの法則が効きます(これも第43講です)。
- 「両方60以上」の否定 =
not (kokugo >= 60 and sugaku >= 60)=kokugo < 60 or sugaku < 60 - 「どちらかが60未満なら不合格」と書けば、入れ子ゼロで同じ判定になります
4. 手で確かめる
4-1. 境界値でトレース表を作る
3-4の2つの版を、境界の値で1つずつ追います。テストする値は 0・59・60・61・79・80・81・100 の8点。同値のかたまり(0〜59/60〜79/80〜100)の中身から1つずつと、2つの境界(59と60、79と80)の両隣を取りました。
| tokuten | 正しい順序 | 順序を入れ替えた版 | 一致 |
|---|---|---|---|
| 0 | C | C | ○ |
| 59 | C | C | ○ |
| 60 | B | B | ○ |
| 61 | B | B | ○ |
| 79 | B | B | ○ |
| 80 | A | B | × |
| 81 | A | B | × |
| 100 | A | B | × |
食い違いは80点から始まります。59点も60点も一致してしまうところが、この表のいちばん怖いところです。「動いているように見える」確認を何回やっても、壊れていることに気づけません。80という境界を踏んだ瞬間に、初めて割れます。
4-2. Python で実際に走らせる
以下は実際に実行して出力を確認したコードです(Python 3.9.6)。
def seikai(t): # 正しい順序(狭い条件を先に)
if t >= 80: return "A"
elif t >= 60: return "B"
else: return "C"
def kowareta(t): # 順序を入れ替えた版
if t >= 60: return "B"
elif t >= 80: return "A"
else: return "C"
print([t for t in range(0, 101) if kowareta(t) == "A"])
print([t for t in range(0, 101) if seikai(t) != kowareta(t)])
出力はこうなりました。
[]
[80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
1行目の [] が「評定Aは1点分も出ない」ことの証拠です。2行目のとおり、食い違うのは80点から100点までの21通りすべてでした。
4-3. 境界の1文字を全数で確かめる
def goukaku_seikai(x): return "合格" if x >= 60 else "不合格"
def goukaku_gosa(x): return "合格" if x > 60 else "不合格"
print([x for x in range(0, 101) if goukaku_seikai(x) != goukaku_gosa(x)])
出力:
[60]
101通りのうち、食い違うのは60点の1つだけ。これが「境界のバグは見つけにくい」ことの、数値による裏づけです。
4-4. 「そうでなければ」を書かないと何が起きるか
範囲を両側から and で挟んだ多分岐を作り、範囲外の値を入れてみます。
def hyotei_ryogawa(t):
if t >= 80 and t <= 100:
h = "A"
elif t >= 60 and t < 80:
h = "B"
elif t >= 0 and t < 60:
h = "C"
return h
print(hyotei_ryogawa(-1))
出力:
UnboundLocalError: local variable 'h' referenced before assignment
どの条件にも当てはまらなかったので、h に一度も代入されないまま最後の行に到達しました。取りこぼしが「間違った答え」ではなく「エラー」として出た——これはまだ運がよい場合です。
では そうでなければ で受け止めれば安心かというと、そこにも罠があります。
def hyotei_else(t):
if t >= 80: h = "A"
elif t >= 60: h = "B"
else: h = "C"
return h
print(hyotei_else(-1), hyotei_else(101))
出力:
C A
エラーにはなりませんが、−1点が「C」、101点が「A」として黙って通ってしまいます。そうでなければ は網羅性を保証しますが、入力そのものが妥当かどうかは保証しません。この2つは別の話です。
4-5. 入れ子と and が同じであることを全数で確かめる
3-6の3つの書き方(入れ子・and・ド・モルガンで否定を外に出した版)を、国語0〜100点 × 数学0〜100点のすべての組合せで比べました。
検査した組合せ 10201 通り/3つの書き方が食い違った組合せ 0 通り
境界の4点: (59,59)不合格 (59,60)不合格 (60,59)不合格 (60,60)合格
101 × 101 = 10201 通りすべてで一致しました。入れ子を and に畳んでも、判定は1ミリも変わりません。変わるのは読みやすさだけです。
5. 共通テストではこう出る
重要度 S。第3問のプログラム問題は、条件分岐なしには成立しません。
大学入試センター「令和8年度 問題評価・分析委員会報告書(本試験)」の『情報Ⅰ』問題作成部会の見解には、こう書かれています。
問3では,繰り返しや条件分岐の理解力,求められた出力を得る手順の全体構造を理解し,改善するための力を問う問題とした。
大学入試センター「令和8年度 問題評価・分析委員会報告書(本試験)」『情報Ⅰ』自己評価
同じ資料は正答率も公表しています。第3問について——
条件設定の理解を問う問題は8割以上,プログラム中の空欄を埋める問題は4〜8割,プログラムの改善を扱った問題は4割程度,プログラムの動きを問う問題は約2割であった。全体としては6割弱
同上
「条件設定の理解」が8割で、「プログラムの動き」が2割。この落差がすべてを語っています。設定を読むところまでは、みんな行けるのです。分岐を1行ずつ追って、どの枝を通るのかを決める段階で4分の1に減ります。トレース表を書く習慣があるかどうかが、そのまま点数差になっています。
出題される型は3つあります(設問文そのものは大学入試センターの著作物なので、ここでは形だけ説明します)。
| 型 | 問われ方 | 狙われる急所 |
|---|---|---|
| 型1 条件式の穴埋め | 日本語の仕様が問題文で与えられ、空欄に入る条件式を選ぶ | > と >= の選択、and と or の選択 |
| 型2 境界を問う | 「この値のとき、変数はいくつになるか」 | 与えられる値がちょうど境界であることが非常に多い |
| 型3 分岐の順序を問う | 「2つの条件を入れ替えたら結果はどう変わるか」「この枝は実行されることがあるか」 | 3-4で見た「到達できない枝」 |
境界の値を渡されたら、それは出題者が > と >= の区別を試している合図だと思ってよいです。
自作の類題
ある商品の送料を、次の規則で決めます。購入金額が5000円以上なら送料0円。3000円以上5000円未満なら300円。3000円未満なら600円。次の分岐は正しく動きますか。動かないなら、どの購入金額で誤りますか。
もし kingaku >= 3000 ならば:
| soryo = 300
そうでなくもし kingaku >= 5000 ならば:
| soryo = 0
そうでなければ:
⎿ soryo = 600
答え:5000円以上のすべての金額で誤ります。送料が0円になるべきところが300円になります。2つ目の条件には永久に到達しません。1行目と3行目を入れ替えて kingaku >= 5000 を先頭にすれば正しくなります。確かめるべき境界値は 2999・3000・3001・4999・5000・5001 の6点です。
6. 情報Ⅱではこうなる
6-1. まず語数調査で分水嶺を見る
同じ語が、国の3つの文書に何回出てくるかを数えました(2026年8月3日に当方でテキスト化して機械計数)。
| 語 | 学習指導要領解説 情報編 | 情報Ⅰ教員研修用教材 | 情報Ⅱ教員研修用教材 |
|---|---|---|---|
| 条件分岐 | 0 | 1 | 4 |
| 分岐 | 1 ※別の意味 | 38(うち第3章34) | 18(すべて第4章) |
| 制御構造 | 0 | 5 | 1 |
| 順次 | 0 | 13 | 1 ※別の意味 |
| 境界値 | 0 | 1 ※別の意味 | 4 |
| 同値分割 | 0 | 0 | 3 |
| 境界値分割 | 0 | 0 | 3 |
| 命令網羅/分岐網羅 | 0/0 | 0/0 | 2/2 |
| テストケース | 0 | 0 | 4 |
| 多分岐 | 0 | 0 | 0 |
解説の「分岐」1件は、プログラムの条件分岐ではありません。情報デザインの「情報の構造化」の記述で、「情報の関係には並列,順序,分岐,因果,階層などがあり」という文脈です。同様に解説の「反復」1件も「図形の反復と変化」=造形の話。つまり学習指導要領解説 情報編には、プログラムの制御構造としての「分岐」が1件も無いということです。
情報Ⅰ教員研修用教材の「境界値」1件も、テスト設計の境界値ではありません。第4章の「四分位数はデータを大きさの順に並べたときに,データの個数を4等分する境界値で」=統計の話です。テスト設計としての境界値は、情報Ⅰ側に0件でした。
情報Ⅰ第2章の「分岐」4件も情報デザイン側(Webサイトの構造の例)。プログラムの意味は第3章の34件です。情報Ⅱ教材の「順次」1件も、第3章後半のクラスタリングで「距離が近いクラスタ同士を順次まとめて」=日常語でした。
調べた範囲:学習指導要領解説 情報編(全文)/情報Ⅰ教員研修用教材 第1〜4章と巻頭2分冊/情報Ⅱ教員研修用教材 序章・第1章・第2章・第3章前半・第3章後半・第4章・第5章。加えて IPA ITパスポート試験シラバス Ver.6.5 と基本情報技術者試験シラバス Ver.9.2。
6-2. 情報Ⅰ側の一次資料は「分岐は2択」で止まっている
「順次・分岐・反復」という三分類そのものが、学習指導要領解説には書かれていません。導入しているのは情報Ⅰ教員研修用教材 第3章 学習13「基本的プログラム」で、そこにこうあります。
どのようなアルゴリズムでも,処理の流れは,順次,分岐,反復の3つの構造の組み合わせで構成されている。このような処理の流れを制御構造という。
文部科学省「高等学校情報科『情報Ⅰ』教員研修用教材」第3章 学習13(令和2年)
そして同じ学習の「指導上の留意点」に、決定的な一文があります。
分岐は2択の処理であり,条件によって処理する内容が変化することを解説する。
同上
国の情報Ⅰ教材は、分岐を「2択」と定義しています。実際、この学習の関数説明表に載っているのは if 条件 : 処理1 else: 処理2 の1行だけで、elif に相当する説明はありません。3つ以上に分ける多分岐は、次の学習14の乱数のコード例に、何の説明もなく現れるだけです。「多分岐」という語は、解説・情報Ⅰ教材・情報Ⅱ教材のいずれにも0件でした。
一方で共通テストは、例示で堂々と そうでなくもし を定義し、唯一の完全なプログラム例(二分探索)でそれを使っています。「2択」で止まっている情報Ⅰの一次資料と、多分岐を前提にする共通テストの間に、段差があります。
なお実務側は呼び方まで違います。IPA 基本情報技術者試験シラバス Ver.9.2 は「⑤制御構造 プログラム言語の基本的な制御構造を理解する。用語例 選択処理,繰返し処理」と書き、「分岐」という語を使いません。ITパスポート試験シラバス Ver.6.5 には「制御構造」の項目自体がありません(「分岐」3件はすべて損益分岐点でした)。
6-3. 情報Ⅱでは、境界が「テストケース設計」という工程になる
情報Ⅱ教員研修用教材 第4章 学習23「分割したシステムの制作とテスト」が、この講の内容をそのまま工程に組み替えます。まず単体テストが2種類に分けられます。
- ホワイトボックステスト(ソースコードを見ながら)……「全ての命令を少なくとも1回は実行する」命令網羅、「全ての条件分岐を少なくとも1回は通る」分岐網羅/条件網羅
- ブラックボックステスト(コードを見ずに仕様書から)……同値分割と境界値分割
そして境界値の定義が、教材原文でこう与えられます。
境界値とは,同値クラスの上限や下限,またそのすぐ隣の値のことである。条件の値の範囲がある場合,その範囲の両端やそれぞれを越えた値が有効であるか無効であるかをテストする。
文部科学省「高等学校情報科『情報Ⅱ』教員研修用教材」第4章 学習23(令和2年6月)
4-1で私が「境界とその両隣を試せ」と書いたことが、情報Ⅱでは「境界値分割」という名前の付いた手法になります。教材が挙げる例は図書館の貸出システムで、貸出期限を2週間とするとき、境界値分割でテストするのは「貸出日からちょうど2週間後(14日後)の日、とその翌日(15日後)」だと明記されます。同値クラスは「貸出の当日」「貸出から2週間以内」「貸出から2週間を越えている」の3つで、同じクラスの中の値はどれか1つだけテストすればよいとされます。
この演習には、文科省が公開している演習解答もあります。学習23 演習3 は「貸出冊数の上限5冊に達した場合、または既に借りている書籍の延滞がある場合には新しく借りられない」という判定について、分岐を網羅するテストの入力値の組合せを設計させる問題です。公式の解答は「同値分割で考える」と述べたうえで、同値クラスを「延滞本がある/すでに5冊貸出中/すでに4冊貸出中/…/それ以外」と上限のまわりを1冊きざみで並べています。境界の近くだけを細かく刻む——本講で私が「境界の両隣を試せ」と言ったことと、まったく同じ発想です。
6-4. 題材まで同じです——教材が「点数から成績を判定する」を使う
ここが本講の最大の接続点です。情報Ⅰ教員研修用教材 第3章 学習13 の分岐の例題は、こうでした。
点数 x が 60 点以上ならば,「合格」を表示し,そうでなければ「不合格」を表示するプログラムを作成する(x の値は 80 とする)
文部科学省「高等学校情報科『情報Ⅰ』教員研修用教材」第3章 学習13(令和2年)※要約
そして情報Ⅱ教員研修用教材 第4章 学習23 が扱うのは、同じ題材の3段階版です。判定基準は評定A=100〜80、B=79〜60、C=59〜0。さらに続く学習24の冒頭は、この題材を固有名詞のように逆参照します。
学習23で学んだように,「点数から成績を判定する」「特定の書籍を検索する」のような特定の処理を行う関数レベルのテストについては,単体テストを行うことが有用であった。
文部科学省「高等学校情報科『情報Ⅱ』教員研修用教材」第4章 学習24(令和2年6月)
情報Ⅰでは「点数から合否を出す分岐を書く」。情報Ⅱでは「点数から評定を出す分岐をテストする」。まったく同じ題材で、立場が「書く側」から「壊しにいく側」へ移ります。
6-5. 教材自身が「取りこぼし」を自認している
学習23 の成績判定プログラムは、条件を両側から and で挟んで書かれています(4-4で私が再現したのと同じ形です)。そして教材は、自分の載せたコードについてこう書きます。
テストの成績であるため,入力値は0から100までの数値が期待されるが,負の値や100より大きい値が入力された場合は,どの条件判定にも当てはまらず,関数の最後まで到達してしまうため,テストが行われないことになる。命令網羅に加えて分岐網羅の考え方を取り入れることで,「全ての分岐を通らない場合」の戻り値を確認するテストも設計に入ることになり,仕様の曖昧な点やプログラムの誤りを見つけることができる
文部科学省「高等学校情報科『情報Ⅱ』教員研修用教材」第4章 学習23(令和2年6月)
国の教材が、自分の載せたコードに網羅性の穴があることを名指しし、それをテスト手法の必要性の説明に使っています。3-5で述べた「そうでなければを書かないと取りこぼす」は、私の解釈ではありません。教材が自分で書いていることです。
そして4-4で実際に走らせたとおり、この形は範囲外の入力で UnboundLocalError になりました。教材の言う「関数の最後まで到達してしまう」の、実際の姿がこれです。
6-6. 情報Ⅰと情報Ⅱの扱いの違い
| 論点 | 情報Ⅰ | 情報Ⅱ |
|---|---|---|
| 分岐とは | 条件で処理を選ぶ書き方(教材の定義は「2択」) | 網羅すべき経路。分岐網羅の対象 |
| 境界の扱い | 式を間違えないための注意点 | 境界値分割という名前の手法 |
| 入力の範囲 | 与えられた前提 | 同値クラスに分けて設計する対象 |
| 誰がやるか | 自分が書いて自分で確かめる | 仕様書からテストケースを設計する |
| 誤りの現れ方 | 答えが違う | 動くのに仕様を満たさない/範囲外で落ちる |
| ゴール | 正しく書けること | 壊れることを先に見つけること |
情報Ⅰの「境界で事故る」が、情報Ⅱでは「境界値分析」として工程に組み込まれます。受験生にとって嬉しいのは、この順序が逆でもよいという点です。情報Ⅱのやり方(境界とその両隣を必ず試す)を先に身につけてしまえば、情報Ⅰの条件分岐で落とすことは、ほぼ無くなります。
まとめ
- 条件分岐は「上から順に評価し、最初に真になった枝だけ実行して抜ける」。だから順序が意味を持つ。
- 共通テスト用プログラム表記は
もし〜ならば:/そうでなくもし〜ならば:/そうでなければ:の3語。範囲は字下げではなく|と⎿で示す(⎿が制御文の終わり)。比較は6つ。 - 「以上/未満/より大きい」を式に翻訳するところが最大の事故現場。60点以上を
x > 60と書くと、101通りのうち60点の1点だけ答えが割れる。だから見つからない。 - 広い条件を先に書くと、後ろの条件に到達しない。評定の例では、順序を入れ替えると評定Aが1点分も出なくなった。
- 自分の分岐は網羅性と排他性で検査する。
そうでなければが網羅性を、そうでなくもしが排他性を担う。 - 入れ子は
andで畳める。101×101=10201通りで判定は完全に一致した。読みやすさだけが変わる。 - 情報Ⅱでは、この「境界で事故る」がそのまま同値分割・境界値分割という手法名になり、題材(点数から成績を判定する)まで同じまま、立場が「書く側」から「壊しにいく側」へ移る。
出典(すべて2026年8月3日に取得)
- 大学入試センター「令和7年度大学入学共通テスト 試作問題『情報』の概要」2022年11月9日公表(第5節「共通テスト用プログラム表記の例示」)
- 大学入試センター「令和8年度 問題評価・分析委員会報告書(本試験)」『情報Ⅰ』問題作成部会の見解
- 文部科学省「高等学校学習指導要領(平成30年告示)解説 情報編」平成30年7月
- 文部科学省「高等学校情報科『情報Ⅰ』教員研修用教材」第3章・第4章(令和2年)
- 文部科学省「高等学校情報科『情報Ⅱ』教員研修用教材」第3章後半・第4章(令和2年6月)
- IPA「基本情報技術者試験(レベル2)シラバス Ver.9.2」/「ITパスポート試験シラバス Ver.6.5」
制度に関する記述はすべて2026年8月時点のものです。同じ第3部では第48講(変数と代入)が本講の土台、第43講(論理演算)が条件式の土台になります。『藤原進之介の最強120講義』の全体像とカテゴリ「情報Ⅰ 最強120講義」から他の講も読めます。
執筆:藤原進之介(数強塾グループ代表)
オンライン数学専門塾「数強塾」代表。累計3,500名以上の中高一貫校生を指導。東進ハイスクール・東進衛星予備校・代々木ゼミナールなど出講実績あり。情報Ⅰの参考書を複数執筆しており、KADOKAWA『ゼロから始める情報I』、Gakken『きめる!共通テスト 情報Ⅰ』などがあります。本記事は参考書『藤原進之介の最強120講義』第50講のWeb版です。
「分岐まではわかるのに、追いかけると必ずどこかで間違える」という方へ
共通テスト『情報Ⅰ』の第3問は、プログラムの動きを問う設問の正答率が約2割です。読める人と読めない人で得点が真っ二つに割れます。トレース表の書き方は、独学だと形だけ真似して終わりがちなところです。数強塾では数学と情報Ⅰの両方に対応したオンライン個別指導を行っています。学習相談は無料、体験授業は3,000円(税込)でお受けしています。
