我的任务是,如果数组中没有元素包含2或3,则返回一个布尔表达式。
boolean no23(int[] nums)
{
boolean no23 = false;
for (int i=0; i<2; i++)
{
if (nums[i]==2 || nums[i]==3)
{
no23 = false;
}
else
{
no23 = true;
}
}
return no23;
}
我的问题是:如果第一个数字为3,则返回假,但是如果第二个数字为5,则返回真。所以最终的回报是正确的,那是一个错误。
我怎么解决这个问题?
谢谢你的帮助。
最佳答案
在break;
之后放置no23 = false;
,因为一旦它为假,它将永远为假,并且您无需再做任何进一步的操作。
另外,如果将no23
初始化为true
,则无需继续在循环中进行设置,并且可以完全删除else
子句。
然后,您可能会意识到根本不需要no23
。如果找到2或3,则可以使用return false;
,而在函数末尾可以使用return true;
,因为如果将其一直循环到循环中,则找不到2或3。
现在您有了:
boolean no23(int[] nums)
{
for (int i=0;i<2;i++)
{
if (nums[i]==2 || nums[i]==3)
{
return false;
}
}
return true;
}
关于c - 错误的 boolean 语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34930351/