次の処理が終了したとき、sの値はいくつか。配列の要素番号は1から始まり、forの両端を含む。modは整数除算の余り、andは両方の条件が真であることを表す。 整数型の配列: a ← {3, 8, 5, 12, 6} 整数型: s ← 0 整数型: i for (i を 1 から 5 まで 1 ずつ増やす) if ((a[i] mod 2 = 0) and (a[i] > 6)) s ← s + a[i] endif endfor
本サイトで独自に作成。IPAの試験問題からの転載ではありません。
公開日:
選択肢を選んで、答え合わせをしましょう。
回答せずに正解・解説を確認する
正解:ウ 20
この表示だけでは、回答数や正答率は変わりません。
解説
条件は「偶数で、かつ6より大きい」です。3は奇数、8は条件を満たすのでs=8、5は奇数、12は条件を満たすのでs=20、6は偶数ですが6より大きくないため加えません。sの変化は0 → 0 → 8 → 8 → 20 → 20です。
12だけでなく、8も偶数で6より大きいため加算されます。
8と6だけを足すと14ですが、6は条件外で12は条件内です。
条件に合う8と12の合計20です。
26は偶数の8、12、6をすべて足した値です。6は不等号の条件を満たしません。
関連知識
複数の条件は、各要素について一つずつ真偽を確認します。値を足す処理と、条件を満たす要素数を数える処理は別です。このコードはsに1ではなくa[i]を加えています。
間違えやすいポイント
「> 6」を「>= 6」と読まないこと。また、andをorに置き換えると加算対象が変わります。
覚え方
条件を二列で確認してから合計する。
実務での意味
売上データから金額や種類の条件に合う行だけを集計する処理の基礎になります。
解説:本サイト編集部によるオリジナル文章