ミスティーネットPerl・CGI講座 パール・CGIレッスン MISTY-NETレンタルサーバー・PERLプログラミング講座 CGI&PERL究極のレシピ

管理運営:有限会社ミスティーネット

| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 |
Perl言語リファレンス

ミスティーネットPerl・CGI講座/基本編
ミスティーネットPerl・CGI講座/基本編
始めに 始めに
変数について 変数について
処理の制御1 処理の制御1
処理の制御2 処理の制御2
配列の処理 配列の処理
ハッシュの処理 ハッシュの処理
数値の扱い 数値の扱い
文字の扱い 文字の扱い
時間の処理 時間の処理
サブルーチン サブルーチン
ファイルの処理 ファイルの処理
ディレクトリの処理 ディレクトリ処理
CGIについて CGIについて
漢字の処理 漢字の処理
    (文字コード)
Cookie の処理 Cookie の処理
正規表現1 正規表現1
正規表現2 正規表現2
演算子について 演算子について
ライブラリ ライブラリ
デバッグ デバック
環境変数について 環境変数
ミスティーネットPerl・CGI講座/基本編

ミスティーネットPerl・CGI講座/応用編
ミスティーネットPerl・CGI講座/応用編
カウンターを作ってみよう カウンターを
     作ってみよう!
ミニゲームを作ってみよう ミニゲームを
     作ってみよう!
ミスティーネットPerl・CGI講座/応用編

  HOME >> 処理の制御2 >> ループの制御構文
  1. 処理を途中で終了する (last)
  2. 次のループへスキップする (next)
  3. 現在のループを繰り返す (redo)
  4. 次のループの前処理を行なう (continue)
  5. 処理の途中で終了する (exit)
■ 処理(ループなど)を途中で終了する (last)
last」 は、「while」 などのループ構文で、処理を途中で終了させたい場合に使います。


for ( $i=1; $i<=10; $i++ ) {
    $count += $i;
    if ( $i == 5 ) { last; }
}
print "合計:$count";
「$count += $i」 は、「$count = $count + $i」 と同義です。

このプログラムは、1から10までの合計を計算して表示するプログラムです。
しかし、数値が5の時に 「last」 コマンドを使って計算のループを終了している為、
実際には1から5までの合計が表示されます。


     → for 構文について

■ 次のループへスキップする (next)
next」 は、「while」 などのループ構文で、次のループへスキップさせたい場合に使います。


for ( $i=1; $i<=10; $i++ ) {
    if ( $i == 5 ) { next; }
    $count += $i;
}
print "合計:$count";

1から10までの合計を計算して表示するプログラムですが、 5のみ飛ばして計算します。

* ループが入れ子になっている場合には、一番内側のループに対して「next」 が行なわれます。

     → for 構文について

■ 現在のループを繰り返す (redo)
redo では、最も内側のループ処理、今現在行なっているループをもう一度繰り返します。

print "1〜5の数字を3つ入力してください。\n";
for ($n = 1; $n <= 3; $n++ ) {
     print "$n 個目>";
     $num[$n] = <STDIN>;
     chomp($num[$n]);
     if (($num[$n] < 1) || (5 < $num[$n])) {
         print "入力値が間違っています。\n";
         redo;
     }
}
print "$num[1], $num[2], $num[3] ですね。\n";

     → for 構文について

■ 次のループの前処理を行なう (continue)
あまり使われることがない構文ですが、「while」 文で次のループにを実行する前に「continue」 内の処理を実行してからループへ進みます。
「continue」 を使うと、「while」 文を「for」 文のように使うことが出来ます。

【continue 有り】

$i = 1;
while ( $i <= 10 ) {
    print $i;
} continue {
    $i++;
}
【continue 無し】

$i = 1;
while ( $i <= 10 ) {
    print $i;
    $i++;
}

上記は数字の1から10までを表示するループ処理ですが、「continue」 を使ったプログラムと使わないプログラムの2種類があります。
どちらも表示結果は変わりません。
ただ、変数 $i の最終的な値が 「continue 有り」 では 「10」 なのに対して、「continue 無し」 では 「11」 となっています。 これは、「continue」 を使った場合は、次にループ処理がある場合のみ 「continue」 内の処理が行なわれる為、$i の値が「10」 の時には 「$i++」 の処理を行ないません。
対して、「continue 無し」 では、$i の値が 「10」 の時にも 「$i++」 の処理が行なわれる為、$i の値が 「11」 となります。

     → while 構文について

■ プログラム処理を終了する (exit)
exit」 は、プログラムの処理を終了させたい場合に使います。


for ( $i=1; $i<=10; $i++ ) {
    $count += $i;
    if ( $i == 5 ) { exit; }
}
print "合計:$count";

1から10までの合計を計算して表示するプログラムですが、 数値が5の時点でプログラムを終了させます。
「last」 と似ていますが、「last」 ではループ内の処理のみが終了するのに対して、 「exit」 ではプログラム自体がこの時点で終了してしまう為、ループ処理の後にくる合計の表示処理が行なわれません。


     → for 構文について



| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問い合わせ | ミスティーネット |
(C)Copyright 2002 ミスティーネット Inc. All Right Reserved.