next
Perl に関する簡単な質問: ループ (while ループなど) を通過する場合、aとcontinue
コマンドの違いは何ですか? どちらもループの次の繰り返しにスキップすると思いました。
39792 次
2 に答える
22
continue
キーワードは、ループのブロックの後に使用できます。ブロック内のコードは、次の反復の前(ループ条件が評価される前)に実行されます。制御フローには影響しません。continue
my $i = 0;
when (1) {
print $i, "\n";
}
continue {
if ($i < 10) {
$i++;
} else {
last;
}
}
ほぼ同等です
foreach my $i (0 .. 10){
print $i, "\n";
}
キーワードは、 -構文、Perlの-で別のcontinue
意味を持ちます。ブロックが実行された後、ほとんどのプログラムがとにかくそれを行うので、Perlは自動的にsします。次のケースにフォールスルーしたい場合は、を使用する必要があります。ここで、制御フローを変更します。given
when
switch
case
when
break
continue
continue
given ("abc") {
when (/z/) {
print qq{Found a "z"\n};
continue;
}
when (/a/) {
print qq{Found a "a"\n};
continue;
}
when (/b/) {
print qq{Found a "b"\n};
continue;
}
}
印刷します
Found a "a"
Found a "b"
キーワードはnext
ループでのみ使用可能であり、新しい反復を含みます。ループ状態の再評価。redo
ループブロックの先頭にジャンプします。ループ状態は評価されません。
于 2012-08-22T21:46:36.143 に答える