首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查多个条件是否全部为false或全部为true - java

检查多个条件是否全部为false或全部为true - java
EN

Stack Overflow用户
提问于 2012-01-22 15:51:39
回答 4查看 13.2K关注 0票数 1

这听起来很简单,但我的脑海中一片空白

假设我有这个

代码语言:javascript
复制
bool evaluator
for each form element{

    if (element.name = 'fname')
    {
      perform some op
      evaluator = true
    }else evaluator false


    if (element.name = 'city')
    {
      perform some op
      evaluator true
    }else evaluator false

    if (element.name='shipcity')
    {
      perform some op
      evaluator true
    }else evaluator false

}

return evaluator

where evaluator :

    if((t/f) && (t/f) && (t/f))
         |         |        |-----------------evaluation of condition 3
         |         |-----------evaluation of condition 2
         |--------------evaluation of condition 1

所以在最后我得到了3个条件的“&&”。或者java有内置的方法可以帮我做到这一点吗?

EN

回答 4

Stack Overflow用户

发布于 2012-01-22 15:56:34

代码语言:javascript
复制
if (cond1 == cond2 && cond2 == cond3)

又好又简单

票数 9
EN

Stack Overflow用户

发布于 2012-01-22 15:55:49

要检查多个条件是否全部为假或全部为真,请执行以下操作:

代码语言:javascript
复制
if (cond1 && cond2 && cond3 || !cond1 && !cond2 && !cond3) ...

有更简洁的方式来写这篇文章,但我认为上面的方法在表达意图方面更清晰。

票数 2
EN

Stack Overflow用户

发布于 2012-01-22 15:56:31

根据wcdolphin的评论,你可以这样做:

代码语言:javascript
复制
if(condition1 && condition2 && condition3){
   // do stuff
}

请注意,如果condition1 (或任何其他嵌入式条件)的计算结果为false,则以下所有其他条件都不会被计算。这一点变得非常重要:

代码语言:javascript
复制
if(condition1() && condition2() && condition3()){
   // do stuff
}

例如,如果您将条件设置为方法调用,这可能是相对“昂贵”的操作-如果之前的条件计算为false,这将阻止调用以下函数。

同样的道理也适用于内联条件句,比如:

代码语言:javascript
复制
if((a < b) && (c < d) && (e < f)){
   // do stuff
}

如果为a >= b,则c < de < f都不会被调用,这可以节省性能。(这是对您的第一个代码片段的改进,在第一个代码片段中,所有3个条件都将得到评估。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8959782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档