実践練習問題集:単項マイナス+演算子優先順位(15問)
ここでは、図解で理解した単項マイナス・演算子優先順位を使った実践練習問題集(15問) を紹介します。
- 配列・メソッド・前置/後置・複雑式を組み合わせた中上級者向け。
- 解答・ステップごとの図解付きで理解を深めます。
【問題1】
int x = 3;
System.out.println(-++x);
Java✅ 解答: -4
図解:
Step1: ++x → x=4
Step2: -4 → 出力 -4
【問題2】
int y = 5;
System.out.println(-y--);
Java✅ 解答: -5
図解:
Step1: y-- = 5 (後置)
Step2: -5 → 出力
Step3: y = 4
【問題3】
int a = 2, b = 3;
System.out.println(-a + ++b);
Java✅ 解答: 2
図解:
Step1: ++b → b=4
Step2: -a + ++b → -2 + 4 = 2
【問題4】
int[] arr = {1,2,3};
System.out.println(-arr[0] + arr[1]--);
Java✅ 解答: 1
図解:
-arr[0] = -1
arr[1]-- = 2
合計 = -1 + 2 = 1
arr[1] = 1 (減少)
【問題5】
int x = 2, y = 3;
System.out.println(-x * ++y);
Java✅ 解答: -8
図解:
++y = 4
-x * ++y = -2 * 4 = -8
【問題6】
byte b = 4;
System.out.println((byte)-++b);
Java✅ 解答: -5
図解:
++b = 5
-(5) = -5
キャスト → byte型 -5
【問題7】
int[] nums = {1,2,3};
System.out.println(-nums[0] + nums[1] * -nums[2]--);
Java✅ 解答: -7
図解:
-nums[0] = -1
-nums[2]-- = -3 (後置, nums[2]=2)
nums[1]*-nums[2] = 2 * -3 = -6
合計 = -1 + -6 = -7
【問題8】
int x=3;
System.out.println(-(-x++));
Java✅ 解答: 3
図解:
x++ = 3 (後置)
-3 → -(-3) = 3
x = 4
【問題9】
int a=1, b=2, c=3;
System.out.println(-a + b-- * -c);
Java✅ 解答: -7
図解:
-a = -1
-c = -3
b-- * -c = 2 * -3 = -6
合計 = -1 + -6 = -7
b = 1
【問題10】
int[] arr = {1,2,3};
System.out.println(-(--arr[0] + arr[2]++));
Java✅ 解答: -3
図解:
--arr[0] = 0
arr[2]++ = 3
合計 = 0 + 3 = 3
符号反転 → -3
arr[2] = 4
【問題11】
int x=5;
System.out.println(-x-- + ++x);
Java✅ 解答: 0
図解:
-x-- = -5 (後置, x=4)
++x = 5
合計 = -5 + 5 = 0
【問題12】
int[] arr = {1,2,3};
int x = arr[0]++;
int y = -arr[1];
System.out.println(x + y);
Java✅ 解答: -1
図解:
x = arr[0]++ = 1 (arr[0]=2)
y = -arr[1] = -2
合計 = 1 + -2 = -1
【問題13】
int x=2, y=3;
System.out.println(-x++ * --y);
Java✅ 解答: -4
図解:
x++ = 2 → x=3
--y = 2
-2 * 2 = -4
【問題14】
byte b=2;
System.out.println((byte)-b++ + 1);
Java✅ 解答: -1
図解:
-b++ = -2 (後置, b=3)
-2 + 1 = -1
【問題15】
int[] arr={1,2,3};
System.out.println(-arr[0] + (++arr[1] * -arr[2]));
Java✅ 解答: -10
図解:
++arr[1] = 3
-arr[2] = -3
3 * -3 = -9
-arr[0] = -1
合計 = -1 + -9 = -10
ポイントまとめ
- 単項マイナスは「符号反転」、優先順位は高い
- 前置/後置 ++/– の違いを意識
- 配列・メソッドと組み合わせるとネストや副作用に注意
- 複雑式は括弧で順序を明示すると理解しやすい
- byte/short はキャストが必要
✅ この15問をマスターすれば、
単項マイナス+前置/後置+配列・メソッド・複雑式 の全てを頭の中で計算できるレベルになります。
