Read Article

last演算子を知ろう

広告

この章ではlast演算子について説明します。
last演算子はfor文などの繰り返し処理の中で1に使います。
last演算子はfor文の他にwhile、until 、for 、foreach 、do-while などにも使えます。
では例をみてみましょう。
1 for文のブロックの中にif文が入っています。
このようにfor文にif文を入れることが出来ることを覚えてください。
この例のif文の中にはlastが入っているので、もし$iと$kがイコールになったら、繰り返しをやめますと言う意味です。
lastはこのように一連の流れを強制的に中止したい時に使います。
この例の場合には$kが4なので、4周目のif文の箇所でfor文を抜けますので、1が出力されることはありません。
つまり、lastで抜けるとそれ以降の文は実行されることはありません。
この例の場合は1の箇所です。
結果は1が出力されます。
for文は入れ子にすることができますが、外側のfor文も抜けたい場合にはラベル付きのlastを使います。
初めに入れ子のfor文の中でラベル付きのlastを使わないで実行する例を見てみましょう。
ラベル付きのlastの説明は後ほど行います。
つまり、for文の入れ子の中で通常のlastを使うとどうなるかを説明します。11 入れ子のfor文の上から2つ目のforでlastを使った場合、lastで抜けることができるのは内側のfor文、つまり上から2つ目のforだけです。
内側のfor文の条件部分が5を超えたらlastを実行するのですが、lastを実行した後はまた外側の1に戻ってきてループを繰り返します。
入れ子ではないfor文の場合には1の時点で条件部分の5を超えているので、for文を抜けるはずですが、for文の入れ子の場合には抜けるのはlastの属するfor文だけで、また先頭のfor文に戻って続きを繰り返し、1を出力します。1 外側のfor文も抜けたい場合にはラベル付きのlastを使いますので、以下の例を見てみましょう。11 2つfor文がありますが、すべてのループを抜けたいのであれば上の例のように外側のforに1を付けてください。
この例では1です。
そして、for文の中のlast にも1と記述してください。
「if($i*$j>=5)」の条件式に従って5より大きくなったのならば、ラベル付けされた一番前のfor文のループを抜けるので、ここで処理を終了します。
ラベル名には英文字と数字と下線が使えますが、先頭文字に数字は使えません。
また、ラベル名は大文字を使って書く習慣になっています。

URL :
TRACKBACK URL :
Return Top