我试图让这个方法返回一个布尔值数组。布尔值将为true或false,具体取决于给定的floor整数是高于还是等于(true)somenumbers [i]或更低(false)中的值。
例如,如果floor值为19且someNumbers包含:1,785,17,56,78。布尔数组将为false,true,false,true,true。
这是我的Java方法:
public boolean[] boolsRule(int floor, int[] someNumbers) {
boolean[] results;
for (int i = 0; i < someNumbers.length; i++) {
results = (someNumbers[i] >= floor) ? true : false;
}
return results;
}
以下是我收到的错误消息:
error: incompatible types
results = (someNumbers[i] >= floor) ? true : false;
^
required: boolean[]
found: boolean
我想知道一种将布尔值更改为布尔数组的方法,或者是否需要不同的解决方案。任何帮助将不胜感激。
答案 0 :(得分:5)
看起来你想要的是
boolean[] results = new boolean[someNumbers.length];
// you have to initialize it
for (int i = 0; i < someNumbers.length; i++) {
results[i] = someNumbers[i] >= floor; // ? true : false is redundant
// ^ you're setting the ith element of the array, not the whole array
}
return results;
答案 1 :(得分:0)
您只是忘记在数组的每个单元格中存储布尔值。将结果更改为结果[i]
public boolean[] boolsRule(int floor, int[] someNumbers) {
boolean[] results;
for (int i = 0; i < someNumbers.length; i++) {
results[i] = (someNumbers[i] >= floor) ? true : false;
}
return results;
}