错误的布尔语句

时间:2016-01-21 17:25:32

标签: c arrays boolean

我的任务是返回一个布尔表达式,如果数组中没有元素包含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,我就是真的。所以最后的回报是真的,这是一个错误。

我该如何解决这个问题?

感谢您的帮助。

1 个答案:

答案 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;
}