27-2 3級対策:インクリメント・デクリメント演算子

09章で学んだ内容を試験形式で確認する。
前置と後置の違いを混同した問題が頻出。


27-2-1 おさらい

書き方名称動作
++a前置インクリメントa を増やしてから式の値として使う
a++後置インクリメント式の値として使ってから a を増やす
--a前置デクリメントa を減らしてから式の値として使う
a--後置デクリメント式の値として使ってから a を減らす
✅ 単独で a++; と書く場合は前置・後置どちらでも結果は同じ。
違いが出るのは「別の変数への代入と同時に使うとき」だけ。

27-2-2 理解度チェック

Q1. 次のコードで b と a の値はどれか。

int a = 5;
int b = a++;
▶ トレース表を見る
変数初期b = a++(代入)a++ (加算)
a556
b55
解説を表示

正解:ア

後置なので現在値(5)を b に代入してから a を増やす。

Q2. 次のコードで y と x の値はどれか。

int x = 3;
int y = ++x;
▶ トレース表を見る
変数初期++x(加算)y = x(代入)
x344
y4
解説を表示

正解:ウ

前置なので x を先に増やしてから(4)を y に代入する。

Q3. 次のコードで a, i, j の値はどれか。

int i = 2, j = 3;
int a = i++ + --j;
▶ トレース表を見る
変数初期--j(先に減算)a = i + j(代入)i++(加算)
i222(使用)3
j322(使用)2
a44
解説を表示

正解:ア

i++ は i=2 を使って後で3に増加。--j は先に j を2に減らして使う。2+2=4。

Q4. 次のコードで a, b, c の値はどれか。

int a = 1, b = 2, c;
c = ++a + b++;
▶ トレース表を見る
変数初期++a(先に加算)c = a + b(代入)b++(加算)
a122(使用)2
b222(使用)3
c44
解説を表示

正解:ア

++a → a=2、b++ → b=2 を使ってから3に増加。c = 2+2 = 4。