Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这段代码有什么不可编译的地方?_Java_Loops_For Loop_Compilation_Boolean - Fatal编程技术网

Java 这段代码有什么不可编译的地方?

Java 这段代码有什么不可编译的地方?,java,loops,for-loop,compilation,boolean,Java,Loops,For Loop,Compilation,Boolean,由于某些原因,true和false被认为是不兼容的类型。我只是想通过一个布尔方法来运行它吗?有什么问题吗 for(int i = 0; i < array.length ; i++) { int val = (array[i] % 2); if(val == 0) array[i] = true; else array[i] = false; } 如果使用数组[i]%2并将结果赋给int,那么数组可能是int[] 没有从布尔值到int值的转换,因此无法将结果存储回int[]数组。不清楚您

由于某些原因,true和false被认为是不兼容的类型。我只是想通过一个布尔方法来运行它吗?有什么问题吗

for(int i = 0; i < array.length ; i++)
{
int val = (array[i] % 2);
if(val == 0)
array[i] = true;
else
array[i] = false;
}
如果使用数组[i]%2并将结果赋给int,那么数组可能是int[]

没有从布尔值到int值的转换,因此无法将结果存储回int[]数组。不清楚您想做什么,但这就是为什么它没有编译

旁白

如果您有一个相同大小的单独布尔[],那么这将起作用-尽管它更简单地写为:

boolean[] even = new boolean[array.length];
for (int i = 0; i < array.length; i++) {
    even[i] = (array[i] % 2) == 0;
}
你应该考虑将它重构为:

doSomething(someCondition);

您的数组包含错误的类型:

    int[] a = {1, 2, 4};
    boolean[] b = {true, false};

    b[0] = 1; //error
    a[0] = 1; //ok

看起来您已经声明数组要存储某种数字;对和错不是数字。把这个问题结束为不清楚怎么办?不清楚的地方是什么?我同意,@Sage,尽管我不想看到Jon Skeet失去再投100票的机会。@DavidWallace我们得猜数组是什么类型的。现在的问题是,如果你想帮忙,你得猜一猜。乔恩,你的答案在前两段时就更好了,它完整而简洁地回答了这个问题。添加太多的额外内容只会让OP感到困惑。@DavidWallace:将添加一条规则并表明这是一条旁白。。。
    int[] a = {1, 2, 4};
    boolean[] b = {true, false};

    b[0] = 1; //error
    a[0] = 1; //ok