Perl redo 語(yǔ)句

Perl 循環(huán) Perl 循環(huán)

Perl redo 語(yǔ)句直接轉(zhuǎn)到循環(huán)體的第一行開(kāi)始重復(fù)執(zhí)行本次循環(huán),redo語(yǔ)句之后的語(yǔ)句不再執(zhí)行,continue語(yǔ)句塊也不再執(zhí)行。

continue 語(yǔ)句可用在 while 和 foreach 循環(huán)中。

語(yǔ)法

語(yǔ)法格式如下所示:

redo [LABEL]

其中 LABEL 是可選的。

帶標(biāo)號(hào)修飾符LABEL的redo語(yǔ)句表示把循環(huán)控制流程直接轉(zhuǎn)到與標(biāo)號(hào)修飾符LABEL相關(guān)聯(lián)的語(yǔ)句塊的第一行處開(kāi)始執(zhí)行,而不再執(zhí)行redo語(yǔ)句之后的語(yǔ)句和continue語(yǔ)句塊;

不帶標(biāo)號(hào)修飾符LABEL的redo語(yǔ)句表示把循環(huán)控制流程直接轉(zhuǎn)到當(dāng)前語(yǔ)句塊的第一行處開(kāi)始執(zhí)行,而不再執(zhí)行redo語(yǔ)句之后的語(yǔ)句和continue語(yǔ)句塊;

如果是在for循環(huán)中或者是帶有continue語(yǔ)句塊,則for循環(huán)中的遞增列表和continue語(yǔ)句塊都不再被執(zhí)行;

流程圖

實(shí)例

#/usr/bin/perl
   
$a = 0;
while($a < 10){
   if( $a == 5 ){
      $a = $a + 1;
      redo;
   }
   print "a = $a\n";
}continue{
   $a = $a + 1;
}

執(zhí)行以上程序,輸出結(jié)果為:

a = 0
a = 1
a = 2
a = 3
a = 4
a = 6
a = 7
a = 8
a = 9

Perl 循環(huán) Perl 循環(huán)