2013-08-16 101 views
2

對我來說,這個代碼是如何,我認爲我要解決擺脫空if語句的方法?

if ($b eq "" && $ok) { 

} elsif ($b eq "" && !$ok) { 
    print "ERROR1\n"; 

} else { 
    print "ERROR2\n"; 
} 

的問題,但它是不是很漂亮,我想有一個空if語句來。

有沒有辦法避免這種情況?

回答

3

你只需要邏輯改變你想要什麼

if($b eq "" && !$ok){ 
    print "ERROR1\n"; 
}elsif(!$ok || $b ne ""){ 
    print "ERROR2\n"; 
} 
+0

好了,關鍵是要反轉'if'語句並使之成爲'elsif'。 –

5

如果保持,但檢查$ B

if ($b eq "") { 
    if (!$ok) { 
     print "ERROR1\n"; 
    } 
} 
else{ 
    print "ERROR2\n"; 
} 
+1

這比其他答案要清楚得多。與「或」連接的兩個否定點總是不如嵌套ifs清晰。 –