繰返し処理とは?
繰返し処理とは、決められた条件が満たされる間、同じ手順を何度も実行する制御構造。順次・選択と並ぶ基本構造の一つで、①使用する変数の初期値、②続けるか終わるかを判定する条件、③1周ごとの変数の更新、の3点で動きが決まる。条件を先に判定する前判定型と、1回実行してから判定する後判定型があり、後者は条件を最初から満たしていなくても必ず1回は実行される。
基本情報技術者試験の過去問では3回出題されています(2022年度〜2023年度)。
くりかえししょり
繰返し処理の意味
決められた条件が満たされる間、同じ手順を何度も実行する制御構造。順次・選択と並ぶ基本構造の一つで、①使用する変数の初期値、②続けるか終わるかを判定する条件、③1周ごとの変数の更新、の3点で動きが決まる。条件を先に判定する前判定型と、1回実行してから判定する後判定型があり、後者は条件を最初から満たしていなくても必ず1回は実行される。
繰返し処理の具体例
x=2、y=3から始めて「yを1減らす→xにyを足す→y≠1なら戻る」を実行すると、1周目でy=2・x=4、2周目でy=1・x=5となり、そこで終了してxは5になる。手順を追う設問は、1周ごとに変数の値を表へ書き出すと取り違えない。
繰返し処理は試験でどう引っ掛けられる?
終了条件が「y≠1なら戻る」か「y=1なら戻る」かで結果が正反対になる。また判定が先か後かで実行回数が1回ずれるため、後判定型は最初から条件を満たしていても1回は実行される点が問われる。更新を忘れると条件が永久に変わらず無限ループになる。
繰返し処理と関連する用語
繰返し処理が出た過去問
次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 手続delNodeは、単方向リストから、引数posで指定された位置の要素を削除する手続である。引…
正解:prev.next.next
要点:単方向リストの削除は前要素のnextを次の次へ張り替える
単方向リストで途中の要素を削除するには、削除対象の1つ前の要素のnextを、削除対象の次の要素へ張り替えます。ループを抜けた時点でprevは削除対象の直前(pos-1番目)を指しているので、削除対象はprev.next、その次はprev.next.nextです。したがって prev.next ← prev.next.next とすれば、対象の要素が連結から外れます。
出典:令和4年度 s 基本情報技術者試験 kamokuB 問10(IPA)次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数findPrimeNumbersは…
正解:a: maxNum b: i ÷ j の余り が 0 と等しい
要点:素数判定は平方根まで剰余0の約数を探せばよい
外側の繰返しは2以上maxNum以下の整数を順に調べるので、上限はmaxNumそのものでよい。内側では2からその数の平方根までの数で割り切れるかを調べ、割り切れた時点で素数でないと判定して打ち切る。割り切れるかどうかは剰余が0になるかで判定するため、bには余りが0と等しいという条件が入る。
出典:令和5年度 (公開問題) 基本情報技術者試験 kamokuB 問1(IPA)次の記述中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次の手続sortは、大域の整数型の配列dataの、引数first…
正解:2 1 3 5 4
要点:枢軸位置で左右が出会うと交換なしで分割が終わる
枢軸はdata[(1+5)÷2]=data[3]=3となる。左からは2、1と枢軸未満が続き、3個目の3で止まるのでiは3、右からは4、5と枢軸超が続き3個目の3で止まるのでjも3になる。i≧jで即座に分割ループを抜けるため、交換は一度も起こらず、初期状態のまま出力される。
出典:令和5年度 (公開問題) 基本情報技術者試験 kamokuB 問3(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。