我的任务是返回一个布尔表达式,如果数组中没有元素包含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,我就是真的。所以最后的回报是真的,这是一个错误。
我该如何解决这个问题?
感谢您的帮助。
答案 0 :(得分:0)
在break;
之后加no23 = false;
因为一旦它是假的,它就永远是假的,你不需要再继续了。
此外,如果您将no23
初始化为true
,则无需继续将其设置为循环,并且可以完全删除else
子句。
一旦你这样做,你可能会发现你根本不需要no23
。你可以return false;
如果你找到一个2或3,并且return true;
在函数的末尾,因为如果它一直通过循环,它没有找到2或a 3。
现在你有了这个:
boolean no23(int[] nums)
{
for (int i=0;i<2;i++)
{
if (nums[i]==2 || nums[i]==3)
{
return false;
}
}
return true;
}