该错误显示以下行
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){
是支架的问题,将来任何人都可以更新。
发布于 2014-04-16 05:39:37
==
比&
具有更高的优先级。您可能希望将操作包装在()
中,以指定如何将操作数绑定到运算符。
((a[0] & 1) == 0)
对于if
条件的所有部分也是如此。
发布于 2014-04-16 05:38:04
您必须更精确地使用括号,否则Java将不会使用您希望它使用的操作数的顺序。
if ((a[0] & 1 == 0) && (a[1] & 1== 0) && (a[2] & 1== 0)){
变成了
if (((a[0] & 1) == 0) && ((a[1] & 1) == 0) && ((a[2] & 1) == 0)){
https://stackoverflow.com/questions/23095004
复制相似问题