跳轉到內容

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'


上一頁:註釋 索引 下一頁:控制流
華夏公益教科書