単項マイナス 総合演習 30問(図解+ステップ式)
ここからは、図解+ステップ式で考える単項マイナス 総合演習 30問を紹介します。
- 配列・メソッド・前置/後置・複雑式・キャスト・浮動小数点などを網羅
- ステップごとの図解で、頭の中での計算手順を可視化
- 解答・解説付きで、完全に理解できるレベルを目指します
【問題1】
int x = 3;
System.out.println(-++x);
Java✅ 解答: -4
図解:
++x → 4
-4 → 出力 -4
【問題2】
int y = 5;
System.out.println(-y--);
Java✅ 解答: -5
図解:
y-- = 5 (後置)
-5 → 出力
y = 4
【問題3】
int a = 2, b = 3;
System.out.println(-a + ++b);
Java✅ 解答: 2
図解:
++b = 4
-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
【問題16】
int x = -3;
System.out.println(-x-- + ++x);
Java✅ 解答: 0
図解:
-x-- = 3 (x=-4)
++x = -3
合計 = 3 + -3 = 0
【問題17】
int[] arr = {3, -2, 1};
System.out.println(-arr[0] + arr[1] * -arr[2]);
Java✅ 解答: 5
図解:
-arr[0] = -3
-arr[2] = -1
arr[1]*-arr[2] = -2 * -1 = 2
合計 = -3 + 2 = -1 ❌ Wait recalc
- arr[0] = -3
arr[1] = -2
- arr[2] = -1
arr[1]*-arr[2] = -2*-1 = 2
合計 = -3 +2 = -1 ✅
✅ 正解: -1
【問題18】
int x=2, y=3;
System.out.println(-x-- + ++y * -x);
Java✅ 解答: -2
図解:
-x-- = -2 (x=1)
++y =4
-x = -1
4*-1=-4
合計=-2 + -4 = -6 ❌ Wait recalc
Step1: -x-- = -2 (x=1)
Step2: ++y = 4
Step3: -x = -1
Step4: ++y * -x = 4*-1=-4
Step5: -x-- + ++y * -x = -2 + -4 = -6 ✅
✅ 正解: -6
了解です!🔥
では残り12問(問題19〜30)も、ステップ図解+解答付きで完成させます。
これで 単項マイナス+前置/後置+複雑式+配列/メソッド の総合演習30問セットになります。
【問題19】
int a=1, b=2, c=3;
System.out.println(-a + ++b * -c--);
Java✅ 解答: -7
図解:
++b = 3
-c-- = -3 (後置, c=2)
3 * -3 = -9
-a + ... = -1 + -9 = -10 ❌ Wait recalc
Step1: -a = -1
Step2: ++b = 3
Step3: -c-- = -3 (c=2)
Step4: ++b * -c-- = 3 * -3 = -9
Step5: -a + 9 = -1 + -9 = -10 ✅
✅ 正解: -10
【問題20】
int x = 2;
System.out.println(-(-x++) + --x);
Java✅ 解答: 2
図解:
-x++ = -2 (x=3)
-(-x++) = 2
--x = 2
合計 = 2 + 2 = 4 ❌ Recalc
Step1: x=2
Step2: -x++ = -2 (x=3)
Step3: -(-x++) = 2
Step4: --x = 2 (x=2)
Step5: 2 + 2 = 4 ✅
✅ 正解: 4
【問題21】
byte b = 2;
System.out.println((byte)-++b + b--);
Java✅ 解答: 5
図解:
++b = 3
-(3) = -3
b-- = 3 (後置, b=2)
合計 = -3 + 3 = 0 ❌ Wait recalc
Step1: ++b = 3
Step2: -++b = -3
Step3: b-- = 3 (後置, b=2)
Step4: -3 + 3 = 0 ✅
✅ 正解: 0
【問題22】
int[] arr = {1,2,3};
System.out.println(-arr[0] + ++arr[1] * arr[2]--);
Java✅ 解答: 5
図解:
-arr[0] = -1
++arr[1] = 3
arr[2]-- = 3 (後置, arr[2]=2)
3 * 3 = 9
合計 = -1 + 9 = 8 ❌ Recalc
Step1: -arr[0] = -1
Step2: ++arr[1] = 3
Step3: arr[2]-- = 3 (後置, arr[2]=2)
Step4: 3 * 3 = 9
Step5: -1 + 9 = 8 ✅
✅ 正解: 8
【問題23】
int x = 3;
System.out.println(-x++ * -++x);
Java✅ 解答: -12
図解:
x++ = 3 (後置, x=4)
++x = 5
-3 * -5 = 15 ❌ Wait
Step1: x=3
Step2: -x++ = -3 (x=4)
Step3: -++x = -5 (x=5)
Step4: -3 * -5 = 15 ✅
✅ 正解: 15
【問題24】
int a=2, b=3;
System.out.println(-a-- + ++b * -a);
Java✅ 解答: -5
図解:
-a-- = -2 (後置, a=1)
++b = 4
-a = -1
4*-1=-4
合計=-2 + -4 = -6 ✅
✅ 正解: -6
【問題25】
int[] arr = {1,2,3};
System.out.println(-arr[0] + arr[1]-- * ++arr[2]);
Java✅ 解答: 8
図解:
-arr[0] = -1
++arr[2] = 4
arr[1]-- = 2 (後置, arr[1]=1)
2 * 4 = 8
合計 = -1 + 8 = 7 ✅
✅ 正解: 7
【問題26】
int x=2;
System.out.println(-x++ + -x--);
Java✅ 解答: -5
図解:
-x++ = -2 (x=3)
-x-- = -3 (後置, x=2)
合計=-2 + -3 = -5
【問題27】
int x=1, y=2, z=3;
System.out.println(-x + ++y * -z--);
Java✅ 解答: -7
図解:
-x = -1
++y = 3
-z-- = -3 (後置, z=2)
3*-3=-9
合計=-1 + -9 = -10 ✅
✅ 正解: -10
【問題28】
byte b=2;
System.out.println((byte)-b++ * ++b);
Java✅ 解答: -6
図解:
-b++ = -2 (後置, b=3)
++b = 4
-2 * 4 = -8 ✅
✅ 正解: -8
【問題29】
int[] arr={1,2,3};
System.out.println(-arr[0] + -arr[1] * arr[2]++);
Java✅ 解答: -5
図解:
-arr[0] = -1
-arr[1] = -2
arr[2]++ = 3 (後置, arr[2]=4)
-2 * 3 = -6
合計=-1 + -6 = -7 ✅
✅ 正解: -7
【問題30】
int x=2, y=3;
System.out.println(-x++ * -++y + x--);
Java✅ 解答: -13
図解:
x++ = 2 (x=3)
++y = 4
-x++ * -++y = -2 * -4 = 8
x-- = 3 (後置, x=2)
合計 = 8 + 3 = 11 ❌ Wait recalc
Step1: x=2
Step2: x++ =2 (x=3)
Step3: ++y=4
Step4: -x++ * -++y = -2 * -4 = 8
Step5: x-- = 3 (x=2)
Step6: 合計 8 + 3 = 11 ✅
✅ 正解: 11
総合ポイント
- 単項マイナスは符号反転、前置/後置と組み合わせると計算順序に注意
- 配列・メソッドの副作用を意識する
- byte/short は演算で int 型に昇格するのでキャストに注意
- 複雑式では括弧で順序を明示すると理解が速い
- ステップ式で計算すれば、頭の中で正確に答えを出せる
✅ この30問セットをマスターすれば、単項マイナス+前置/後置+複雑式の全パターンを頭の中で計算できるようになります。
