这听起来很简单,但我的想法是空白
说我有这个
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
所以最后我得到'&&'三个条件。或者java有一个内置的方法,它将为我做这个
答案 0 :(得分:8)
if (cond1 == cond2 && cond2 == cond3)
美观而简单
答案 1 :(得分:2)
检查多个条件是否全部为假或全部为真:
if (cond1 && cond2 && cond3 || !cond1 && !cond2 && !cond3) ...
有更简洁的方法来写这个,但我认为上述内容在表达意图时更清楚。
答案 2 :(得分:1)
如果你想检查它们是否都是真的或者都是假的,你可以这样做:
if ((c1 && c2 && c3) || (!c1 && !c2 && !c3)) {
//do things
}
其中c1,c2和c3是布尔值。
希望这就是你所要求的。
答案 3 :(得分:1)
根据wcdolphin的评论,你可以这样做:
if(condition1 && condition2 && condition3){
// do stuff
}
请注意,如果condition1
(或任何其他嵌入条件)的计算结果为false,则甚至不会评估所有其他后续条件。这变得很重要:
if(condition1() && condition2() && condition3()){
// do stuff
}
如果您改为使条件调用成为方法调用,例如,这可能是相对“昂贵”的操作 - 如果先前的条件求值为false,这将阻止调用以下函数。
对于内联条件也是如此,例如:
if((a < b) && (c < d) && (e < f)){
// do stuff
}
如果a >= b
,则不会调用c < d
或e < f
,这可以节省性能。 (这是对您的第一个代码段的改进,其中始终会评估所有3个条件。)