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 提供了下列的循環控制語句:

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

無限迴圈

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

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

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

#!/usr/bin/perl
 
for( ; ; )
{
   printf "循环会无限执行。\n";
}

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

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

#控制語句描述

next 語句

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

last 語句

退出循環語句區塊,從而結束循環

continue語句

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

redo 語句

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