为什么这个阵列检查不起作用?

时间:2015-05-28 00:39:36

标签: java arrays

我正在尝试检查数组中的1或3,如果找到任何一个,则打印false,否则打印true。我是这样的:

if(array[i] == 1){
 bool = false;
}
else if(array[i] == 3){
 bool = false;
}
else{
 bool = true; 
}

然而,它并不适用于所有情况。

如果输入为0 2 4,则按原样打印为真。

但是如果输入是4 2 7 1 8,那么它应该是假的,因为它有1,但是它打印为真。

我做错了什么?

编辑:在if中添加了一个中断并更改了if语句。立即行动。

 if(array[i] == 1 || array[i] == 3){
     bool = false;
     break;
    }
    else{
     bool = true; 
    }

2 个答案:

答案 0 :(得分:3)

更好的方法是

boolean flag = true;

for(int i=0; i<myArray.length; i++)
{
    if(myArray[i]==1 || myArray[i]==3){
        flag = false;
        break;
    }
}

return flag;

答案 1 :(得分:0)

此代码

if(array[i] == 1 || array[i] == 3){
     bool = false;
     break;
    }
    else{
     bool = true; 
    }

相等

if(array[i] == 1){
     bool = false;
    }else{
     bool = true; 
    }
    if(array[i] == 3){
     bool = false;
    }
    else{
     bool = true; 
    }