Perlの条件分岐、繰り返し

制御構文を2種に分類すると

・条件分岐を行う
・繰り返しの処理を行う

代表的な制御構文

・if 条件分岐
・for ループ
・foreach ループ
・while ループ
・do ループ。必ず1回は処理される
・last for,foreach,while,do文において、一段ブロックを抜ける
・next for,foreach,while,do文において、処理をスキップしてループの先頭に戻る
・goto 指定されたラベルへジャンプする

last文

for ($i=1; $i<=9; $i++) {
 for ($j=1; $j<=9; $j++) {
  $val = $i * $j;
  if ($val > 10) {
   last;
  }
 }
}

→ for ($j=1; $j<=9; $j++) のブロックだけ抜ける

next文

for ($i=1; $i<=9; $i++) {
 処理1;
 処理2;
 if (条件) {
  next;
 }
 処理3; #nextが実行されると実行されない
}

→条件を満たすとループの先頭に戻る

goto文

for ($i=1; $i<=9; $i++) {
 for ($j=1; $j<=9; $j++) {
  $val = $i * $j;
  if ($val > 10) {
   goto skip;
  }
 }
}
skip:

→ラベル「skip」の位置にジャンプする(2重ループの外へ出る)