配列・メソッド応用:単項マイナス練習問題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-6をarr[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] = 1→doubleIt(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
💬 解説:
-arr[0] = -1-arr[2] = -3arr[1] * -arr[2] = 2 * -3 = -6- 合計
-1 + -6 = -7
応用ポイントまとめ
| 項目 | ポイント |
|---|---|
| 配列の要素 | arr[index] に - を付けると符号が反転 |
| メソッド呼び出し | 返り値に - を付けて符号反転 |
| 複雑式 | 括弧や演算順序に注意 |
| 型変換 | byte / short ではキャストが必要 |
| ネスト | -(-x) のような二重符号反転も理解しておく |
💡 この10問を理解すれば、「単項マイナス × 配列 × メソッド」 の組み合わせも自在に扱えるようになります。
