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