Perl 迴圈
有的時候,我們可能需要多次執行同一塊代碼。一般情況下,語句是按順序執行的:函數中的第一個語句先執行,接著是第二個語句,依此類推。
編程語言提供了更為複雜執行路徑的多種控制結構。
迴圈語句允許我們多次執行一個語句或語句組,下麵是大多數編程語言中迴圈語句的流程圖:
注意,數字 0, 字串 '0' 、 "" , 空 list () , 和 undef 為 false ,其他值均為 true。 true 前面使用 ! 或 not則返回 false 。
Perl 語言提供了以下幾種迴圈類型:
迴圈類型 | 描述 |
---|---|
當給定條件為 true 時,重複執行語句或語句組。迴圈主體執行之前會先測試條件。 | |
重複執行語句或語句組,直到給定的條件為 true。 迴圈主體執行之前會先測試條件。 | |
多次執行一個語句序列,簡化管理迴圈變數的代碼。 | |
foreach 迴圈用於迭代一個列表或集合變數的值。 | |
除了它是在迴圈主體結尾測試條件外,其他與 while 語句類似。 | |
您可以在 while、for 或 do..while 迴圈內使用一個或多個迴圈。 |
迴圈控制語句
迴圈控制語句改變了代碼的執行順序,通過它你可以實現代碼的跳轉。
Perl 提供了下列的迴圈控制語句:
控制語句 | 描述 |
---|---|
停止執行從next語句的下一語句開始到循環體結束識別字之間的語句,轉去執行continue語句塊,然後再返回到循環體的起始處開始執行下一次迴圈。 | |
退出迴圈語句塊,從而結束迴圈 | |
continue 語句塊通常在條件語句再次判斷前執行。 | |
redo 語句直接轉到循環體的第一行開始重複執行本次迴圈,redo語句之後的語句不再執行,continue語句塊也不再執行; | |
Perl 有三種 goto 形式:got LABLE,goto EXPR,和 goto &NAME。 |
無限迴圈
如果條件永遠不為 false,則迴圈將變成無限迴圈。
for 迴圈在傳統意義上可用於實現無限迴圈。
由於構成迴圈的三個運算式中任何一個都不是必需的,您可以將某些條件運算式留空來構成一個無限迴圈。
實例
#!/usr/bin/perl
for( ; ; )
{
printf "迴圈會無限執行。\n";
}
你可以按下 Ctrl + C 鍵來終止迴圈。
當條件運算式不存在時,它被假設為 true 。您也可以設置一個初始值和增量運算式,但是一般情況下,Perl 程式員偏向於使用 for(;;) 結構來表示一個無限迴圈。