所以我真的不知道我在这里做错了什么。该方法应采用布尔数组并检查所有元素是否为真,如果为假,则应返回false。
public static boolean nvm(boolean[] con) {
boolean c = true;
for(int i = 0; i < con.length ; i++) {
if (and(con[i], con[i++]) == false) {
c = false;
}
}
return c;
}
and
检查两个布尔值,如果它们都为真,则返回true,否则为false。我已经测试了and
,但它的工作正常。
在我的手机上写了这个帖子,所以我希望它看起来并不奇怪。感谢任何帮助。
答案 0 :(得分:2)
该方法应采用布尔数组并检查是否所有元素都是 真
{{1}}
答案 1 :(得分:1)
问题出在这一行:
if(and(con[i],con[i++]) == false){
特别是i++
部分。 i++
实际上增加了i,所以你可能会跳过一些数组元素并得到错误的结果。改为使用i+1
,这会使i
保持不变。
此外,您可以像这样简化代码:
public static boolean nvm(boolean[] con) {
for(int i = 0; i < con.length ; i++) {
if (!con[i]) return false;
}
return true;
}
答案 2 :(得分:1)
也许我错过了一些东西,但
'该方法应采用布尔数组并检查所有元素是否为真,如果一个为假,则应返回false'
可以写成:
boolean[] array;
for(boolean a : array) {
if(!a) { return false; }
}
return true;
答案 3 :(得分:1)
如果要检查所有元素是否都为真,则可以轻松简化代码。
public static boolean nvm(boolean[] con) {
for(int i = 0; i<con.length ; i++) {
If(!con[i]) {
return false;
}
}
return true;
}
我认为&#34;和&#34;没有任何理由。我只能看到它可能会导致你有一个idexoutofboundsexception。