ここからは、図解で学ぶ単項マイナスと演算子優先順位を解説します。
- 単項マイナス(
-)の動き - インクリメント/デクリメント(
++/--)との組み合わせ - 式中での優先順位や括弧の影響
を視覚的に理解できる内容です。
1. 単項マイナスの基本イメージ
a = 5
-a → 符号反転 → -5
a = -3
-a → 符号反転 → 3
- ポイント:
-xは「x の値を反転するだけ」
2. 単項マイナスとインクリメント/デクリメント
| 演算子 | 意味 | 図解例 |
|---|---|---|
| ++x | 前置インクリメント | x=3 → ++x=4 |
| x++ | 後置インクリメント | x=3 → x++=3(実行後 x=4) |
| –x | 前置デクリメント | x=3 → --x=2 |
| x– | 後置デクリメント | x=3 → x--=3(実行後 x=2) |
図解例:-++x と -x++
x = 3
-++x:
Step1: ++x → x=4
Step2: -4 → 出力 -4
-x++:
Step1: x++ → 値 = 3 (後置)
Step2: -3 → 出力 -3
Step3: x = 4 (増加)
- ポイント: 前置は先に増減、後置は後で増減
3. 演算子優先順位の図解
順位 高 → 低
1. () : 括弧
2. ++, --, - (単項) : 前置
3. *, /, % : 乗除
4. +, - (二項) : 加減
図解例:
int a=2, b=3, c=4;
System.out.println(-a + b * -c);
Java計算順序:
- -a → -2
- -c → -4
- b * -c → 3 * -4 = -12
- -a + (b*-c) → -2 + -12 = -14
4. ネスト例
int x=2;
System.out.println(-(-x++));
Java図解:
Step1: x++ = 2 (後置)
Step2: -x++ = -2
Step3: -(-x++) = 2
Step4: x = 3 (増加)
- ポイント: 符号のネストは内側から外側へ計算
5. 配列+単項マイナスの視覚化
int[] arr = {1,2,3};
System.out.println(-arr[1]);
Javaarr[1] = 2
-arr[1] = -2 → 出力
6. 後置・前置+配列の応用
int[] arr = {1,2,3};
System.out.println(-arr[0] + arr[1]--);
Java図解:
Step1: arr[0] = 1 → -arr[0] = -1
Step2: arr[1]-- = 2 (後置)
Step3: -1 + 2 = 1 → 出力
Step4: arr[1] = 1 (減少)
7. 浮動小数点の注意点
double z = -0.0;
1.0 / z → -Infinity
- 符号が 0.0 にも影響
-0.0と0.0は == では同じだが計算結果は異なる
8. 練習用図解テンプレート
- 式を書き出す → 例:
-++x + y * -z - 括弧で順序を明示 →
(-(++x)) + (y * (-z)) - 一歩ずつ計算
- 前置/後置の増減
- 符号反転
- 乗除/加減の順
- 結果を確認
💡 コツ:
- 「単項演算子は優先順位が高い」
- 「前置/後置の差を意識」
- 「括弧を使って順序を明示」
これだけ理解すれば、複雑な式でも頭の中で計算できるようになります。
