ホームページ > バックエンド開発 > PHPの問題 > PHP ループ学習 5: ループから抜け出すには? 5 つのメソッドの簡単な分析

PHP ループ学習 5: ループから抜け出すには? 5 つのメソッドの簡単な分析

青灯夜游
リリース: 2023-03-11 21:08:01
オリジナル
16066 人が閲覧しました

前の記事では、PHP のいくつかのループ制御構造 (while ループdo-while ループfor ループおよび foreachループ)、配列を走査するためのforループ文とforeachループ文のメソッドを紹介していますので、興味のある方はリンクをクリックしてご覧ください。

ループ ステートメントでは、条件が満たされた場合に繰り返し操作を実行できますが、条件が満たされていてもループが終了していない場合があり、この場合はループから抜け出す必要があります。では、PHP のループから抜け出すにはどうすればよいでしょうか?今日はループから抜け出す5つの方法を紹介します: continue ステートメント、break ステートメント、goto ステートメント、die()/exit() ステートメント、return ステートメントです。

方法 1: continue ステートメントを使用する

Continue ステートメントの機能は、このループから抜け出して次のサイクルを実行することです。 (Continue ステートメント コードを放棄した後、次のループに進みます)。

以下のコード例を見てみましょう。

例 1: 1 から 10 までのすべての偶数を出力します (偶数は 2 で割り切れます)

<?php
    for ($i = 1; $i <= 10; $i++) {
        if($i % 2 != 0) {
            continue;
        }
        echo $i.&#39; <br>&#39;;
    }
?>
ログイン後にコピー

分析:

  • for ($i = 1; $i <= 10; $i ){}ステートメントをループして 1 ~ 10 のすべての数値を取得できます

  • #if($i % 2 != 0) ステートメントは、$i の値が 2 で均等に割り切れるかどうかを判定するために使用されます。均等に割り切れない場合は、 () の値が true の場合、Continue; ステートメントが実行されます。

  • ループ本体内で

    if($i % 2 != 0) ステートメントを使用して $i の値が割り切れるかどうかを判定します。 2 で割る場合は、「echo $i」出力を使用します。$i の値を 2 で均等に割ることができない場合は、Continue; ステートメントがトリガーされ、このループから抜け出します (出力なし)、次のループを実行します。

  • #出力結果:
2
4
6
8
10
ログイン後にコピー

#方法 2: Break ステートメントを使用します

#breakステートメントは、現在の構文構造からジャンプするために使用され、ループ本体のコードを終了し、現在のループから直ちにジャンプし、ループの後のコードを実行します。

break と continue の違いは、 continue ステートメントは現在のループのみを終了するのに対し、break ステートメントはループ全体の実行を終了することです。

上記の例 1 のコードを使用し、

Continue;

break; に置き換えます。何が出力されますか? <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;?php for ($i = 1; $i &lt;= 10; $i++) { if($i % 2 != 0) { break; } echo $i.&amp;#39; &lt;br&gt;&amp;#39;; } ?&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>答えは次のとおりです: 何も出力されません

。なぜこうなった?それを分析してみましょう:

forx ループの最初の $i=1

では、1 は 10 未満ですか?もちろん、その後、ループ本体内の

if($i % 2 != 0) ステートメントの実行を開始します; それでは、1 は 2 で割ることができますか?明らかにそれはできないので、()

の値が true の場合、if 内の "break;" ステートメントが実行され、ループ全体から直接抜け出て、"#" を実行する機会はありません。 ##echo $i.' < br>'

" ステートメント。 方法 3: goto ステートメント

goto の機能は、プログラムの実行を現在位置から他の位置にジャンプすることです。ターゲットの場所は、ターゲット名の後にコロンを付けることでマークできます (例: name: )。ジャンプ命令は goto の後にターゲットの場所のマークが続きます。 goto 自体にはループを終了する機能はありませんが、そのジャンプ位置によりループからのジャンプとして使用できます。

以下のコード例を見てみましょう。

#例 2: 1 から 10 までのすべての奇数を出力します (奇数は 2 で割り切れません)

<?php
for ($i = 1; $i <= 10; $i++) {
    if($i % 2 == 0) {
        goto a;
    }
    echo $i.&#39; <br>&#39;;
}
a:
?>
ログイン後にコピー

出力:

1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
goto は実際には単なる演算子であり、その使用には特定の制限があります。ジャンプのターゲット位置は同じファイルおよびスコープ内にのみ存在できます。

goto 演算子は、PHP5.3 以降でのみ有効です。

方法 4: die()/exit() ステートメント

exit と die の 2 つの名前は同じ関数を指します。 die()/exit() の役割: プログラムの実行を終了するため、どこでも使用できます。

上記の例 3 のコードを使用し、goto ステートメントを die() に置き換えて、出力を確認します。

<?php
header("Content-type:text/html;charset=utf-8");
for ($i = 1; $i <= 10; $i++) {
    if($i % 2 == 0) {
        die();
    }
    echo $i.&#39; <br>&#39;;
}
?>
ログイン後にコピー

出力:

1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
die()/exit() 関数は、特定の値または文字列のパラメーターを 1 つだけ受け入れます。あるいはパラメーターを入力しないこともできます。パラメータが文字列の場合、PHP はその文字列を直接出力し、パラメータが整数 (範囲は 0 ~ 254) の場合、そのパラメータが終了状態として使用されます。

方法 5: return ステートメント

return ステートメントは、コードを終了してパラメーターを返すために使用されます。 上記の例 3 のコードを使用し、die() ステートメントを return ステートメントに置き換えて、出力を確認します。

<?php
header("Content-type:text/html;charset=utf-8");
for ($i = 1; $i <= 10; $i++) {
    if($i % 2 == 0) {
        return;
    }
    echo $i.&#39; <br>&#39;;
}
?>
ログイン後にコピー

出力:

1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

return语句可以在一个函数里调用,也可以从一个include()或者require()语句包含的文件里来调用,也可以是在主程序里调用。

好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

推荐:PHP面试题大汇总(收藏)

以上がPHP ループ学習 5: ループから抜け出すには? 5 つのメソッドの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート