繰返し処理とは?くりかえししょり
繰返し処理とは、決められた条件が満たされる間、同じ手順を何度も実行する制御構造。順次・選択と並ぶ基本構造の一つで、①使用する変数の初期値、②続けるか終わるかを判定する条件、③1周ごとの変数の更新、の3点で動きが決まる。条件を先に判定する前判定型と、1回実行してから判定する後判定型があり、後者は条件を最初から満たしていなくても必ず1回は実行される。
最終更新:2026-10-10
この語が出る過去問を解く →背景
同じ処理を件数の分だけ書き並べると、手順が長くなるうえ、件数が変わるたびに書き直すことになる。そもそも入力が何件来るか、事前に分からない場合もある。そこで「条件が満たされる間はこの手順を続ける」という形で書き、件数が不定でも同じ手順で表せるようにした。
具体例
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回は実行される点が問われる。更新を忘れると条件が永久に変わらず無限ループになる。
関連用語
出た過去問
出典:令和4年度 公開問題 基本情報技術者試験 科目B 問10(IPA)
次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 手続delNodeは、単方向リストから、引数posで指定された位置の要素を削除する手続である。引…
正解:prev.next.next
要点:単方向リストの削除は前要素のnextを次の次へ張り替える
単方向リストで途中の要素を削除するには、削除対象の1つ前の要素のnextを、削除対象の次の要素へ張り替えます。ループを抜けた時点でprevは削除対象の直前(pos-1番目)を指しているので、削除対象はprev.next、その次はprev.next.nextです。したがって prev.next ← prev.next.next とすれば、対象の要素が連結から外れます。
出典:令和5年度 公開問題 基本情報技術者試験 科目B 問1(IPA)
次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数findPrimeNumbersは…
正解:a: maxNum b: i ÷ j の余り が 0 と等しい
要点:素数判定は平方根まで剰余0の約数を探せばよい
外側の繰返しは2以上maxNum以下の整数を順に調べるので、上限はmaxNumそのものでよい。内側では2からその数の平方根までの数で割り切れるかを調べ、割り切れた時点で素数でないと判定して打ち切る。割り切れるかどうかは剰余が0になるかで判定するため、bには余りが0と等しいという条件が入る。
出典:令和5年度 公開問題 基本情報技術者試験 科目B 問3(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で即座に分割ループを抜けるため、交換は一度も起こらず、初期状態のまま出力される。
出典・参考
公式シラバスの1 基礎理論 > 3. プログラミング > (1) プログラミングに掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。