出于某种原因, true 和 false 被认为是“不兼容的类型”。我是否只能通过 boolean 方法来运行它?这是怎么回事。
for(int i = 0; i < array.length ; i++)
{
int val = (array[i] % 2);
if(val == 0)
array[i] = true;
else
array[i] = false;
}
最佳答案
好吧,array
可能是一个 int[]
,因为您正在使用 array[i] % 2
并将结果分配给一个int
。
没有从 boolean
到 int
的转换,因此您无法将结果存储回 int[]
数组中。目前尚不清楚您要做什么,但这就是它无法编译的原因。
旁白
如果您有一个相同大小的单独的 boolean[]
,那就可以了 - 尽管它会更简单地写为:
boolean[] even = new boolean[array.length];
for (int i = 0; i < array.length; i++) {
even[i] = (array[i] % 2) == 0;
}
任何时候你发现自己:
if (someCondition) {
doSomething(true);
} else {
doSomething(false);
}
您应该考虑将其重构为:
doSomething(someCondition);
关于java - 这段代码有什么问题,无法编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20479245/