写作(A& C)|| (B& C)条件更短

时间:2013-08-26 07:06:08

标签: perl logic

(E.G.In Perl)当条件A或条件B具有相同的结果时

if (A){
    # Consequence X
}elsif (B){
    # Consequence X
}

我们可以写

if ( A || B ) {
     # Consequence X
}

我们有以下条件:当A和C为真,或者B和C为真时,结果C如下:

这可以写得很久:

if ( A && C){
      # Consequence X
} elsif (B && C ){
      # consequence X
}

我的问题是,有没有办法写这个更短? 像这样:

if ( (A && C) || (B && C) ) 

语法上没问题???

2 个答案:

答案 0 :(得分:8)

if ( A && C){
      # Consequence X
} elsif (B && C ){
      # consequence X
}

与:

相同
if ( (A && C) || (B && C) ){
    #Consequence X
}

这样可以避免两次评估C

if ( (A || B) && C){
    #Consequence X
}
顺便说一句,这更像是一个逻辑问题,这里的逻辑不仅限于Perl。

答案 1 :(得分:3)

尝试以下方法:

if (C && (A || B)) {
}