Java | 単項マイナス演算子

Java Java
スポンサーリンク

配列・メソッド応用:単項マイナス練習問題10問

ここでは、配列やメソッド呼び出しと組み合わせた単項マイナス演算子の応用問題(10問) を用意しました。

  • 実務で使う場面を想定して、符号反転+配列操作やメソッド呼び出しの組み合わせ問題です。
  • 解答・解説付きで、単項マイナスの理解をさらに深めます。

【問題1】 配列の要素を符号反転

int[] arr = {1, -2, 3};
System.out.println(-arr[1]);
Java

✅ 解答:

2

💬 解説:

  • arr[1] は -2
  • -(-2) → 2

【問題2】 配列に代入

int[] arr = {2, 4, 6};
arr[0] = -arr[2];
System.out.println(arr[0]);
Java

✅ 解答:

-6

💬 解説:

  • arr[2] は 6
  • -6arr[0] に代入

【問題3】 メソッドの返り値に適用

public static int getValue() { return -5; }

int x = -getValue();
System.out.println(x);
Java

✅ 解答:

5

💬 解説:

  • getValue() は -5
  • -(-5) → 5

【問題4】 配列と単項マイナスの複合

int[] arr = {1,2,3};
System.out.println(-arr[-1 + 3]);
Java

✅ 解答:

-3

💬 解説:

  • インデックス計算:-1 + 3 = 2
  • arr[2] = 3-3

【問題5】 メソッド内計算

public static int calc(int n) { return n * 2; }

int a = -calc(3);
System.out.println(a);
Java

✅ 解答:

-6

💬 解説:

  • calc(3) → 6
  • -6 を代入

【問題6】 配列の合計に符号反転

int[] nums = {2, 4, 6};
int sum = 0;
for(int i=0; i<nums.length; i++) {
    sum += nums[i];
}
System.out.println(-sum);
Java

✅ 解答:

-12

💬 解説:

  • 合計 2+4+6=12
  • -12 を出力

【問題7】 配列要素+メソッド

public static int doubleIt(int x) { return x*2; }
int[] arr = {1,2};
System.out.println(-doubleIt(arr[0]));
Java

✅ 解答:

-2

💬 解説:

  • arr[0] = 1doubleIt(1) = 2-2

【問題8】 ネストした符号反転

int[] arr = {3, -4};
System.out.println(-(-arr[1]));
Java

✅ 解答:

-(-(-4)) = -4

💬 解説:

  • arr[1] = -4
  • -arr[1] = 4
  • -(4) = -4
  • 符号のネストに注意

【問題9】 配列とキャスト

byte[] bArr = {10, 20};
byte x = (byte)-bArr[0];
System.out.println(x);
Java

✅ 解答:

-10

💬 解説:

  • -bArr[0] は int 型に昇格
  • byte に戻すためキャスト (byte) が必要

【問題10】 配列と複雑式

int[] arr = {1,2,3};
System.out.println(-arr[0] + arr[1] * -arr[2]);
Java

✅ 解答:

-7

💬 解説:

  1. -arr[0] = -1
  2. -arr[2] = -3
  3. arr[1] * -arr[2] = 2 * -3 = -6
  4. 合計 -1 + -6 = -7

応用ポイントまとめ

項目ポイント
配列の要素arr[index]- を付けると符号が反転
メソッド呼び出し返り値に - を付けて符号反転
複雑式括弧や演算順序に注意
型変換byte / short ではキャストが必要
ネスト-(-x) のような二重符号反転も理解しておく

💡 この10問を理解すれば、「単項マイナス × 配列 × メソッド」 の組み合わせも自在に扱えるようになります。

タイトルとURLをコピーしました