Perl 迴圈

Perl 迴圈

有的時候,我們可能需要多次執行同一塊程式碼。一般情況下,語句是按順序執行的:函式中的第一個語句先執行,接著是第二個語句,依此類推。

程式語言提供了更為複雜執行路徑的多種控制結構。

迴圈語句允許我們多次執行一個語句或語句組,下面是大多數程式語言中迴圈語句的流程圖:

迴圈結構

注意,數字 0, 字串 '0' 、 "" , 空 list () , 和 undef 為 false ,其他值均為 true。 true 前面使用 !not則返回 false 。

Perl 語言提供了以下幾種迴圈型別:

迴圈型別描述

while 迴圈

當給定條件為 true 時,重複執行語句或語句組。迴圈主體執行之前會先測試條件。

until 迴圈

重複執行語句或語句組,直到給定的條件為 true。 迴圈主體執行之前會先測試條件。

for 迴圈

多次執行一個語句序列,簡化管理迴圈變數的程式碼。

foreach 迴圈

foreach 迴圈用於迭代一個列表或集合變數的值。

do...while 迴圈

除了它是在迴圈主體結尾測試條件外,其他與 while 語句類似。

巢狀迴圈

您可以在 while、for 或 do..while 迴圈內使用一個或多個迴圈。

迴圈控制語句

迴圈控制語句改變了程式碼的執行順序,通過它你可以實現程式碼的跳轉。

Perl 提供了下列的迴圈控制語句:

控制語句描述

next 語句

停止執行從next語句的下一語句開始到迴圈體結束識別符號之間的語句,轉去執行continue語句塊,然後再返回到迴圈體的起始處開始執行下一次迴圈。

last 語句

退出迴圈語句塊,從而結束迴圈

continue 語句

continue 語句塊通常在條件語句再次判斷前執行。

redo 語句

redo 語句直接轉到迴圈體的第一行開始重複執行本次迴圈,redo語句之後的語句不再執行,continue語句塊也不再執行;

goto 語句

Perl 有三種 goto 形式:got LABLE,goto EXPR,和 goto &NAME。

無限迴圈

如果條件永遠不為 false,則迴圈將變成無限迴圈。

for 迴圈在傳統意義上可用於實現無限迴圈。

由於構成迴圈的三個表示式中任何一個都不是必需的,您可以將某些條件表示式留空來構成一個無限迴圈。

例項

#!/usr/bin/perl for( ; ; ) { printf "迴圈會無限執行。\n"; }

你可以按下 Ctrl + C 鍵來終止迴圈。

當條件表示式不存在時,它被假設為 true 。您也可以設定一個初始值和增量表達式,但是一般情況下,Perl 程式設計師偏向於使用 for(;;) 結構來表示一個無限迴圈。