1. ホーム
  2. java

[解決済み] 二項演算子「&」のオペランド型がおかしい java

2022-01-21 15:58:05

質問内容

エラーは次の行を表示します。

 if ((a[0] & 1 == 0) && (a[1] & 1== 0) && (a[2] & 1== 0)){

これがコードの全体像です。

public class Ex4 {

  public static void main(String[] args) {
  int [] a = new int [3];
  if(args.length == 3)
  {
      try{
        for(int i = 0; i < args.length; i++)
        {
        a[i] = Integer.parseInt(args[i]);
        }
        }
        catch(NumberFormatException e){
            System.out.println("Wrong Argument");
       }
      if ((a[0] & 1 == 0) && (a[1] & 1== 0) && (a[2] & 1== 0)){
        System.out.println("yes");
      }
    else {
        System.out.println("no");
    }
  }
  else{
      System.out.println("Error");
    }
}
}

コードを修正しました。

if ((a[0] & 1) == 0 && (a[1] & 1) == 0 && (a[2] & 1) == 0){

括弧の問題でした。今後、誰でも使えるように更新しました。

解決方法は?

== よりも優先順位が高く & . 操作を () を使って、オペランドと演算子の結合方法を指定します。

((a[0] & 1) == 0)

のすべての部分について、同様に if という条件を設定します。