Java | 図解で学ぶ単項マイナスと演算子優先順位

Java Java
スポンサーリンク

実践練習問題集:単項マイナス+演算子優先順位(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

ポイントまとめ

  1. 単項マイナスは「符号反転」、優先順位は高い
  2. 前置/後置 ++/– の違いを意識
  3. 配列・メソッドと組み合わせるとネストや副作用に注意
  4. 複雑式は括弧で順序を明示すると理解しやすい
  5. byte/short はキャストが必要

✅ この15問をマスターすれば、
単項マイナス+前置/後置+配列・メソッド・複雑式 の全てを頭の中で計算できるレベルになります。

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました