2016-01-21 69 views
0

我的任务是返回一个布尔表达式,如果没有从一个数组元素包含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

返回一个布尔表达式为TRUE,对不起:-) – Michael

+0

关于这一行:'布尔no23(INT [] NUMS)'1)如何定义'boolean'? 2)参数的正确格式是:'int nums []',所以代码不能编译。关于代码逻辑。强烈建议:将返回变量初始化为“true”并删除“else”代码块。在'if'代码块中,在将返回变量设置为'false'后,通过'break;'退出循环 – user3629249

回答

0

no23 = false;之后放一个break;,因为一旦它是假的,它永远是假的,你不需要再去了。

此外,如果将no23初始化为true,则不需要在循环中继续设置它,并且可以完全删除else子句。

一旦你这样做,你可能会意识到你根本不需要no23。如果在函数的末尾找到2或3和return true;,则可以使用return false;,因为如果它在循环中完成所有工作,则它没有找到2或3.如果在该函数的末尾找到2或3,并且为return true;,现在则为return false;。你有这样的:

boolean no23(int[] nums) 
{ 
    for (int i=0;i<2;i++) 
    { 
     if (nums[i]==2 || nums[i]==3) 
     { 
     return false; 
     } 
    } 
    return true; 
}