Java | 単項マイナス演算子

Java Java
スポンサーリンク

単項マイナス総合応用テスト(20問)

ここでは、単項マイナス演算子の総合応用テスト(20問)を作成します。

  • 配列・メソッド・式の組み合わせをランダムにした中上級者向け問題です。
  • 解答・解説付きで、単項マイナスを自在に扱える力を養います。

【問題1】

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

✅ 解答: -5
解説: a の符号を反転。


【問題2】

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

✅ 解答: 10
解説: 負の数を反転して正に。


【問題3】

byte b = 3;
byte c = -b;
Java

✅ 解答: コンパイルエラー
解説: -b は int 型になるためキャストが必要。byte c = (byte)-b;


【問題4】

int min = Integer.MIN_VALUE;
System.out.println(-min);
Java

✅ 解答: -2147483648
解説: オーバーフローで値が変わらない。


【問題5】

char ch = 'C';
System.out.println(-ch + 1);
Java

✅ 解答: -66
解説: 'C' = 67-67 + 1 = -66


【問題6】

double z = -0.0;
System.out.println(1.0 / z);
Java

✅ 解答: -Infinity
解説: -0.0 は符号があるため、除算で符号が影響。


【問題7】

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

✅ 解答: -2
解説: 配列の要素 2 に符号反転。


【問題8】

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

✅ 解答: -6
解説: arr[2]=6 → -6 を代入。


【問題9】

public static int getVal() { return -7; }
System.out.println(-getVal());
Java

✅ 解答: 7
解説: -(-7)=7


【問題10】

int a = 2;
int b = 3;
System.out.println(-a * b);
Java

✅ 解答: -6
解説: (-2) * 3 = -6


【問題11】

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

✅ 解答: -20
解説: byte にキャストして符号反転。


【問題12】

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

✅ 解答: -7
解説: -1 + 2*(-3) = -7


【問題13】

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

✅ 解答: -4
解説: ++x=4 → -4


【問題14】

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

✅ 解答: -3
解説: インデックス計算:-1+3=2 → arr[2]=3 → -3


【問題15】

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=2 → -2


【問題16】

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
解説: 配列合計 = 12 → -12


【問題17】

double a = -1.5;
double b = -a + 2.5;
System.out.println(b);
Java

✅ 解答: 4.0
解説: -(-1.5)=1.5 → 1.5+2.5=4.0


【問題18】

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

✅ 解答: -4
解説: ネスト符号反転:-(-(-4))=-4


【問題19】

int a = 2;
int b = 3;
int c = 4;
System.out.println(-a + b * -c);
Java

✅ 解答: -14
解説: -2 + 3*-4 = -2 + -12 = -14


【問題20】

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

✅ 解答: -6
解説: 括弧内で合計 1+2+3=6 → 符号反転 → -6


総合ポイント

  • 単項マイナスは 符号反転
  • 型変換 に注意:byte/short はキャストが必要
  • Integer.MIN_VALUE はオーバーフロー
  • 配列・メソッド・式 と組み合わせると計算順序に注意
  • 浮動小数点 -0.0 やネストした符号も理解する

💡 この20問をマスターすれば、単項マイナスのほぼすべての応用ケースを理解できます。

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