Perl自學(07) 迴圈語句

2021-10-08 07:45:46 字數 4857 閱讀 1365

(本文參考部落格)

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

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

while(condition)

until 語句在給定條件為 false 時,重複執行語句或語句組。

until(condition)

perl for 迴圈用於多次執行乙個語句序列,簡化管理迴圈變數的**。

for ( init; condition; increment )
下面是 for 迴圈的控制流程解析:

init會首先被執行,且只會執行一次。這一步允許您宣告並初始化任何迴圈控制變數。您也可以不在這裡寫任何語句,只要有乙個分號出現即可。

接下來,會判斷 condition。如果為 true,則執行迴圈主體。如果為 false,則不執行迴圈主體,且控制流會跳轉到緊接著 for 迴圈的下一條語句。

在執行完 for 迴圈主體後,控制流會跳回上面的increment語句。該語句允許您更新迴圈控制變數。該語句可以留空,只要在條件後有乙個分號出現即可

條件再次被判斷。如果為 true,則執行迴圈,這個過程會不斷重複(迴圈主體,然後增加步值,再然後重新判斷條件)。在條件變為 false 時,for 迴圈終止。

在這裡,statement(s) 可以是乙個單獨的語句,也可以是幾個語句組成的**塊。

condition 可以是任意的表示式,當條件為 true 時執行迴圈,當條件為 false 時,退出迴圈。

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

foreach var (list)
#!/usr/bin/perl

@list = (2, 12, 36, 42, 51);

# 執行foreach 迴圈

foreach $a (@list)

a 的值為: 2

a 的值為: 12

a 的值為: 36

a 的值為: 42

a 的值為: 51

不像forwhile迴圈,它們是在迴圈頭部測試迴圈條件。在 perl 語言中,do...while迴圈是在迴圈的尾部檢查它的條件。

do...while迴圈與 while 迴圈類似,但是 do...while 迴圈會確保至少執行一次迴圈。

do

while( condition );

請注意,條件表示式出現在迴圈的尾部,所以迴圈中的 statement(s) 會在條件被測試之前至少執行一次。

如果條件為 true,控制流會跳轉回上面的 do,然後重新執行迴圈中的 statement(s)。這個過程會不斷重複,直到給定條件變為 false 為止。

具體問題具體分析。應該是都會,注意迴圈的次序。

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

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

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

#!/usr/bin/perl

for( ; ; )

注意:你可以按下 ctrl + c 鍵來終止迴圈。

一般情況下,perl 程式設計師偏向於使用 for( ; ; ) 結構來表示乙個無限迴圈。

next 語句

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

last 語句

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

continue 語句

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

redo 語句

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

goto 語句

perl 有三種 goto 形式:got lable,goto expr,和 goto &name。

next [ label ];
其中 label 是可選的,如果沒有指定 label,next 語句將返回到迴圈體的起始處開始執行下一次迴圈。

#!/usr/bin/perl

$a = 10;

while( $a < 20 )

print "a 的值為: $a\n";

$a = $a + 1;

}執行以上程式,輸出結果為:

a 的值為: 10

a 的值為: 11

a 的值為: 12

a 的值為: 13

a 的值為: 14

a 的值為: 16

a 的值為: 17

a 的值為: 18

a 的值為: 19

last [label];
perl last 語句用於退出迴圈語句塊,從而結束迴圈,last語句之後的語句不再執行,continue語句塊也不再執行。

#!/usr/bin/perl

$a = 10;

while( $a < 20 )

print "a 的值為: $a\n";

$a = $a + 1;

}執行以上程式,輸出結果為:

a 的值為: 10

a 的值為: 11

a 的值為: 12

a 的值為: 13

a 的值為: 14

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

continue 語句可用在 while 和 foreach 迴圈中。

while(condition)continue
#/usr/bin/perl

$a = 0;

while($a < 3)continue

執行以上程式,輸出結果為:

a = 0

a = 1

a = 2

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

continue 語句可用在 while 和 foreach 迴圈中。

redo [label]
#/usr/bin/perl

$a = 0;

while($a < 10)

print "a = $a\n";

}continue

執行以上程式,輸出結果為:

a = 0

a = 1

a = 2

a = 3

a = 4

a = 6

a = 7

a = 8

a = 9

perl 有三種 goto 形式:got lable,goto expr,和 goto &name:

1goto label找出標記為 label 的語句並且從那裡重新執行。

2goto exprgoto expr 形式只是 goto label 的一般形式。它期待表示式生成乙個標記名稱,並跳到該標記處執行。

3goto &name它把正 在執行著的子程序替換為乙個已命名子程序的呼叫。

1.8.5.1 goto lable示例:

#/usr/bin/perl

$a = 10;

loop:do

print "a = $a\n";

$a = $a + 1;

}while( $a < 20 );

執行以上程式,輸出結果為:

a = 10

a = 11

a = 12

a = 13

a = 14

跳出輸出

a = 16

a = 17

a = 18

a = 19

1.8.5.2  goto expr示例

$a = 10;

$str1 = "lo";

$str2 = "op";

loop:do

print "a = $a\n";

$a = $a + 1;

}while( $a < 20 );

執行以上程式,輸出結果為:

a = 10

a = 11

a = 12

a = 13

a = 14

a = 16

a = 17

a = 18

a = 19

Perl 迴圈語句

while迴圈語法 while some expression 程式執行到while語句時,首先檢查控制語句 some expression 若其值為真,就會執行迴圈體一次,如此反覆不停的執行,知道控制語句的值為假,則停止while迴圈 示例 usr bin perl w number 10 whi...

C語言高階 迴圈語句07

迴圈語句的基本工作方式 do,while,for的區別 do.while語句的迴圈方式 do while condition while 語句的迴圈方式 while condition for語句的迴圈方式 for 初始化 condition 對條件值的改變 程式示例1 include int f1...

自學篇 迴圈語句應用(二)

具體的語法就不說了,主要就是運用for迴圈語句。1.列印99乘法表,雖然很老套但是能幫助理解for語句.例 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 ...