java - 这段代码有什么问题,无法编译?

标签 java loops for-loop compilation boolean

出于某种原因, 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

没有从 booleanint 的转换,因此您无法将结果存储回 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/

相关文章:

枚举值的 Java 数组

java - Java 是否有获取各种字节顺序标记的方法?

Java 用户输入 - 输入一定范围内的整数或循环并重试

python - 制作字典时尝试保留重复项

arrays - R 中的数组要替换的项目数不是替换长度的倍数

java - 如何将 gzipped rdf 文件加载到 rdf4j 存储库?

java - Hibernate Criteria API 中的 SQL 'LIKE' 运算符

带有for循环的Java搜索数组找不到所有结果

java - 按 <logic :iterate> 中的插入顺序迭代 HashMap

bash - 无法在脚本中静音解压缩输出