![]() |
![]() |
![]() |
![]() |
管理運営:有限会社ミスティーネット |
|||
| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 | | |||
![]() |
![]()
![]()
|
HOME >> 処理の制御2 >> ループの制御構文
■ 処理(ループなど)を途中で終了する (last)
「last」 は、「while」 などのループ構文で、処理を途中で終了させたい場合に使います。
for ( $i=1; $i<=10; $i++ ) {
「$count += $i」 は、「$count = $count + $i」 と同義です。$count += $i; if ( $i == 5 ) { last; } } print "合計:$count"; このプログラムは、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」 文のように使うことが出来ます。
上記は数字の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 構文について |