跳轉到內容

Perl 程式設計/條件語句

來自華夏公益教科書,開放的書籍,開放的世界
先前: 註釋 索引 接下來: 控制流

條件語句

[編輯 | 編輯原始碼]

theif語句

[編輯 | 編輯原始碼]

theif語句是 Perl 中主要的條件結構。語法如下

if (''boolean expression'') {
    ''statement'';
}

如果布林表示式計算結果為真,則執行兩個花括號之間的語句。語句周圍的花括號是強制性的,即使只有一個語句(與 C 或 Java 不同)。

一個替代語法是if語句,可用於單個語句。這涉及將條件放在語句的末尾而不是前面,並且不包含花括號

''statement'' if (''boolean expression'') ;

以下語句是同義詞

if ($x == 20) { print "hello"; }

print "hello" if ($x == 20);

你應該選擇在特定情況下更清晰的那個。例如,以下內容是合法的,但不明確

foreach my $word (@words) {
    if ($word eq 'end') { last; }
    print "$word\n";
}

隱藏last(就像break, 並且結束迴圈) 在右邊。相反,使用字尾if:

foreach my $word (@words) {
    last if $word eq 'end';
    print "$word\n";
}

布林表示式條件可以包含下一節中介紹的任何一個比較運算子。

可以使用布林表示式運算子將多個條件一起檢查

  • &&- 邏輯與,C 風格;用於大多數條件
  • and- 邏輯與,但優先順序較低;用於流程控制
  • ||- 邏輯或,C 風格;用於大多數條件
  • or- 邏輯或,但優先順序較低;用於流程控制
  • !- 邏輯非,C 風格
  • not- 邏輯非,但優先順序較低
if (($x == 20) || (($x > 0) && ($x < 10) && !($x == 5))) {
    print "x is equal to 20 or either between 0 and 10, but not 5.\n";
}

條件語句也可以使用elsifandelse結構進行擴充套件

 if (''boolean expression 1'') {
     ''statement 1;''
 } elsif (''boolean expression 2'') {
     ''statement 2;''
 } else {
     ''statement 3;''
 }

注意,一個if語句後跟任意數量(包括零)個elsif語句,最後是一個可選的else語句。一個elsif的語句將被執行,如果它的布林表示式為真,並且沒有前面的(els)if語句的布林表示式為真。尾隨的else(如果存在) 將被執行,如果前面的所有語句的布林表示式都不為真。

簡寫if ... else符號

[編輯 | 編輯原始碼]

如果你想將條件語句縮短成一行,你可以使用快捷語法

這段程式碼在一行中使用了簡寫語法。
my $bar = 'exists';

my $whatExists = (exists $foo) ? $bar : 'does not exist';
$whatExists 將等於 'exists',如果$foo在之前定義,否則等於 'does not exist'


先前: 註釋 索引 接下來: 控制流
華夏公益教科書