擬似言語の制御構造とは?条件分岐(if)と繰り返し(while・do-while・for)

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

制御構造とは(全体像)

制御構造は、「どの順番で・どんな条件で処理を進めるか」を決める書き方のこと。擬似言語(科目B)では、これを読み解いて「最後にどうなるか」を追う問題がよく出る。

大きく2つ。

繰り返しにはwhile・do-while・forがあり、なかでも「条件をいつ判定するか」の違いが大事。これが「0回実行されることがあるか」を分ける。


詳しく:前判定と後判定だけ覚えれば戦える

ここが記事の心臓部。まずは条件分岐(if)

条件分岐 if

部分役割
if(条件)条件が成り立てば、その中の処理を行う
elseif(別条件)上が不成立で、別の条件が成り立てば行う
elseどれも不成立のとき行う

次に、よく問われる繰り返し3種。とくに判定のタイミングがポイントだ。

繰り返し3種

種類判定のタイミング最低実行回数
while最初に判定(前判定)0回(条件が最初から偽なら実行されない)
do-while最後に判定(後判定)1回(必ず1回は実行される)
for回数を指定指定回数

いちばん大事なのが、whileとdo-whileの違いwhileは処理の前に条件を見るので、条件が最初から偽なら1回も実行されないdo-whileは処理の後に条件を見るので、必ず最低1回は実行される。ここが頻出ポイントだ。

なお、whileの条件は「続ける条件(真の間くりかえす)」で、「終わる条件」ではない。途中でループを抜けるならbreak、その回だけ飛ばして次へ進むならcontinueを使う。

わかりやすく言い換えると

要するに、制御構造は「進む道と、繰り返すかどうかの分かれ道」だ。

if … 「もし雨なら傘を持つ」のような場合分け

while(前判定) … 「お腹がすいていたら食べる」。最初から空いていなければ、一度も食べない(0回ありうる)

do-while(後判定) … 「まず一口食べて、まだ食べたければ続ける」。とにかく最初の一口は必ず食べる(1回は実行)

つまり、判定が処理の前か後かで「0回実行されるか」「必ず1回実行されるか」が変わる、というわけだね。


試験のツボ

🔴 一番出る:whileとdo-whileの違い

①while=前判定。条件が最初から偽なら0回(実行されない)

②do-while=後判定。必ず最低1回は実行される

🔴 次に出る:条件の意味とループ制御

①whileの条件は「続ける条件」(真の間くりかえす)

②breakで抜ける、continueでその回だけ飛ばして次へ

🟡 押さえると安定:読解のコツ

①終了条件を確認(無限ループにならないか)

②変数の値を1行ずつ追う(トレース実行)


よくある間違い

「whileは必ず最低1回は実行される」→ ✗  whileは前判定なので、条件が最初から偽なら0回も実行されない。必ず1回はdo-while。

「whileの条件は『終わる条件』を書く」→ ✗  whileの条件は「続ける条件」(真の間くりかえす)。

「continueはループ全体を途中で抜ける命令である」→ ✗  ループを抜けるのはbreak。continueはその回だけ飛ばして次の周回へ進む。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(whileとdo-while)

📝 オリジナル問題 1 whileとdo-whileの違い

whileとdo-whileの違いに関する次の記述のうち、正しいものはどれか。

  1. whileは後判定で必ず1回実行し、do-whileは前判定で0回もありうる
  2. whileは前判定で0回もありうるが、do-whileは後判定で必ず1回実行する
  3. whileもdo-whileも前判定で、条件が偽なら必ず0回しか実行されない
  4. whileもdo-whileも後判定で、必ず最低1回は実行される点で共通している
オーエスペン
オーエスペン 解答・解説

解答は 2 だよ。

whileは前判定(条件を先に見るので0回もありうる)、do-whileは後判定(必ず最低1回実行)なんだ。「先に見るか後に見るか」で実行回数が変わるよ。

選択肢1はwhileとdo-whileが逆。選択肢3は「ともに前判定」が誤り。選択肢4は「ともに後判定」が誤りだよ。

選択肢判定理由
1whileとdo-whileが逆
2while=前判定・do-while=後判定
3do-whileは後判定
4whileは前判定

オリジナル問題2(条件の意味)

📝 オリジナル問題 2 whileの条件の意味

擬似言語のwhileの条件に関する次の記述のうち、正しいものはどれか。

  1. whileの条件は「終わる条件」で、条件が真になるとループを止めるものである
  2. whileの条件は実行回数そのものを表し、条件式に書いた数だけくりかえす
  3. whileの条件は意味を持たず、書いても書かなくてもループは同じ回数動く
  4. whileの条件は「続ける条件」で、条件が真であるあいだくりかえし実行する
オーエスペン
オーエスペン 解答・解説

解答は 4 だよ。

whileの条件は「続ける条件」で、条件が真であるあいだくりかえすんだ。「終わる条件」ではないので、読み解くときはそこを取り違えないでね。

選択肢1は「終わる条件」が誤り。選択肢2は「回数そのもの」が誤り。選択肢3は「意味を持たない」が誤りだよ。

選択肢判定理由
1続ける条件であって終わる条件ではない
2回数そのものではない
3条件で動きが変わる
4真の間くりかえす「続ける条件」

オリジナル問題3(ループ制御)

📝 オリジナル問題 3 breakとcontinue

ループ制御のbreakとcontinueに関する次の記述のうち、正しいものはどれか。

  1. breakもcontinueもループを完全に抜ける命令で、両者に違いはないとされる
  2. breakはその回だけ飛ばし、continueはループ全体を抜ける命令のことである
  3. breakはループを抜け、continueはその回だけを飛ばして次の周回へと進む
  4. breakもcontinueもループの実行回数を増やす命令で、無限ループを作る
オーエスペン
オーエスペン 解答・解説

解答は 3 だよ。

breakはループを抜ける、continueはその回だけ飛ばして次の周回へ進むんだ。「抜けるbreak、飛ばすcontinue」とセットで覚えてね。

選択肢1は「違いがない」が誤り。選択肢2はbreakとcontinueが逆。選択肢4は「回数を増やす・無限ループ」が誤りだよ。

選択肢判定理由
1breakとcontinueは別もの
2breakとcontinueが逆
3breakは抜ける・continueは次へ
4回数を増やす命令ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る