図のフローチャートを開始から終了まで実行して、bに0〜10の偶数を合計した値を得たい。 ①に入る記号はどれか。

選択肢をタップすると答えと解説が表示されます
出典:厚生労働省ホームページ(第64回臨床検査技師国家試験の問題および正答)。公共データ利用規約(第1.0版)に基づき利用。問題文・選択肢・図は公式の問題冊子のとおり掲載しています(文字の体裁を一部整え、図は冊子から切り出しています)。解説は medimichi が作成したものです。
正解は2番
解説
フローチャートでは、aとbを0にしてから、「a ① 10」がYESの間、b+a→b(bにaを加える)、a+2→a(aを2増やす)を繰り返します。aは0、2、4、6、8、10と増えるので、a=10のときにも加算するには、条件を「a≦10」にする必要があります。aが12になると条件がNOとなって終了し、bには0+2+4+6+8+10=30が得られます(公式正答2)。
選択肢ごとの解説
- 1. 「a<10」では、aが10になった時点でNOとなり、10が加算されずに終了します。bは0+2+4+6+8=20となります。正しくは:この条件では、iが8までの偶数しか加算されず、合計が20になってしまいます。選びやすい理由:比較演算子として一般的ですが、端点の扱いに注意が必要です。混同注意:「<」と「≦」の違い、特にループの終端条件でどちらを使うべきかという点。
- 2. 正解。「a≦10」とすると、aが0、2、4、6、8、10のときに加算が行われ、aが12になった時点で終了します。bには0〜10の偶数の合計30が得られます。
- 3. 「a=10」では、最初のa=0の時点で条件がNOとなり、一度も加算されずに終了します。bは0のままです。正しくは:繰り返しの継続条件は「a≦10」です。選びやすい理由:「〜ではない」という否定の条件でループを止めようとする思考から選んでしまうかもしれません。混同注意:終了条件として「〜と等しくない」を使うことの不適切さ、特に数値の範囲を指定する場合。
- 4. 「a≧10」では、最初のa=0の時点で条件がNOとなり、一度も加算されずに終了します。bは0のままです。正しくは:この条件では、i=0, 2, 4...のときにループが開始されないため、結果は0のままです。選びやすい理由:比較演算子として一般的ですが、条件の向きが逆です。混同注意:「≧」と「≦」の違い、特にループの継続条件と終了条件の考え方。
- 5. 「a>10」では、最初のa=0の時点で条件がNOとなり、一度も加算されずに終了します。bは0のままです。正しくは:この条件では、i=0, 2, 4...のときにループが開始されないため、結果は0のままです。選びやすい理由:比較演算子として一般的ですが、条件の向きが逆です。混同注意:「>」と「<」の違い、特にループの継続条件と終了条件の考え方。
国試ポイント
フローチャートの繰り返しの継続条件(比較記号)を、端の値(10)を含めるかどうかに注意して選べるかが問われています。
混同注意
「i < 10」と「i ≦ 10」の使い分け。前者は10を含まないため、この問題では誤りとなります。
次に同じ論点が出たら
同様の問題が出た場合、まず「どの範囲の値を合計したいのか」「その範囲の最大値・最小値(端点)を含むのか含まないのか」を明確にし、それに合わせて比較演算子(<, ≦, >, ≧)を選ぶようにします。ループが継続する条件なのか、終了する条件なのかも確認が必要です。
関連知識
プログラミングにおけるforループやwhileループの条件式、配列のインデックス範囲、境界値の扱い(オフバイワンエラーなど)。