(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) )
语法上没问题???
答案 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)) {
}