5.7 迴圈控制

Perl 常見的迴圈有 while、for、foreach、until,在每一種迴圈中,可以視情況,使用以下三種算符,來控制迴圈。


last 一次只能跳出一層迴圈

語法:last

用例:

$i=0;
while ($i<=100) {

	$i++;
	last if ($i==10); # 當 $i 等於 10 時,跳出 while 結束迴圈。
	print "$i\n";
}



若要一次跳出多層迴圈,必須採用標記:

語法:last 標記

用例:

#! /usr/bin/perl

$i=0;
$j=0;

OUT: while ($j<=100) {

	$j++;

	while ($i<=100) {

		$i++;
		last OUT if ($i==10); # 當 $i 等於 10 時,跳至最外圈。
		print "$i\n";
	}

	print "我是 j : $j\n";
}




next

next 標記

用例:

$i=0;
while ($i<=100) {
	$i++;
	next if ($i==10); # 當 $i 等於 10 時,跳過去,不執行 print 的動作
	print "Now is $i\n";
}



redo 表示剛剛執行的那一次不算,index 值不增加,重做一次!

redo

redo 標記

用例:

for ($i=1; $i<=100; $i++) {
	print "請輸入數字 $i:";
	chomp($keyin=<STDIN>);
	if ($keyin != $i) { # 若打錯了,再要求重打一次
		print "抱歉! 您打錯了! 是 $i 才對! 請重打一次!\n";
		redo;
	} else {
		print "很好! 我喜歡!\n";
	}
}

# 測試結果:

請輸入數字 1:1
請輸入數字 2:2
請輸入數字 3:3
請輸入數字 4:5
抱歉! 您打錯了! 是 4 才對! 請重打一次!
請輸入數字 4:6
抱歉! 您打錯了! 是 4 才對! 請重打一次!
請輸入數字 4:9
抱歉! 您打錯了! 是 4 才對! 請重打一次!
請輸入數字 4:10
抱歉! 您打錯了! 是 4 才對! 請重打一次!
請輸入數字 4:4
請輸入數字 5:5
請輸入數字 6:6
請輸入數字 7:7
請輸入數字 8:8
請輸入數字 9:9