ホームページ >バックエンド開発 >PHPの問題 >phpのwhileループ文の使い方を詳しく解説

phpのwhileループ文の使い方を詳しく解説

PHPz
PHPzオリジナル
2023-04-25 18:22:143090ブラウズ

PHP では、while ループは一般的なループ構造です。これにより、特定の条件が満たされなくなるまで、コードのブロックを継続的に実行できます。この記事では、while ループの構文と使い方、実際の応用例を詳しく紹介します。

while ループの構文

while ループは他のプログラミング言語の while ループと同じで、次のような構文形式になります。 ##condition

ループ継続の条件を示します。つまり、条件が

true の場合にコード ブロックが実行されます。 コード ブロックは、ループ本体内で実行されるステートメントです。 各ループの最後に、ループは condition

true であるかどうかを再度判断します。そうである場合、ループ本体内のコード ブロックは引き続き実行されますが、そうでない場合、ループは終了します。 つまり、条件

が満たされるかどうかに応じて、while ループを 0 回以上実行できます。

while ループの使用方法

以下では、while ループの使用方法を示す簡単な例を使用します。 1 から 10 までのすべての整数を出力するとします。これを実現するには、while ループを使用します。

while (条件) {
    代码块
}

上記のコードでは、まず変数

$i

を 1 に割り当てます。次に、while ループを使用して 1 から 10 までのすべての整数を出力します。ループ条件は

$i です。つまり、i の値が 10 を超えない限り、ループ本体内のコード ブロックが実行されます。 ループ本体では、まず echo

関数を使用して

$i の現在の値を出力し、最後に改行文字を追加します。次に、$i の値に 1 を加算して、次回のループで次の整数が出力されるようにします。 上記のコードを実行すると、次の出力が得られます。

$i = 1;

while ($i <= 10) {
    echo $i . "\n";
    $i++;
}

ループ条件

$i <= 10

が満たされると、 while ループ ループ本体内のコード ブロックが実行され、1 ~ 10 のすべての整数が出力されます。

while ループの応用

while ループは、非常に強力で柔軟なループ構造です。 while ループを使用すると、次のような多くの実際的な問題を解決できます。

配列要素の処理

while ループを使用して、配列を走査し、その中の各要素を処理できます。たとえば、数値を格納する配列があり、配列内の 10 より大きい要素をすべて出力したいとします。これを実現するには、while ループを使用します。

1
2
3
4
5
6
7
8
9
10

上記のコードでは、では、まず、いくつかの数値を含む配列

$nums

を定義します。次に、変数

$i が初期値 0 で定義されます。 次に、while ループを使用して、配列 $nums

内のすべての要素を反復処理します。ループ条件は

$i 、つまり $i の値が $nums 配列の長さより小さいです。 。各ループでは、まず現在の要素が 10 より大きいかどうかを判断し、そうであれば echo を使用して要素の値を出力します。次に、$i の値を 1 ずつ増やして、次のループで次の要素を処理するようにします。 上記のコードを実行すると、次の出力が得られます:

$nums = [8, 15, 6, 12, 10, 14];
$i = 0;

while ($i < count($nums)) {
    if ($nums[$i] > 10) {
        echo $nums[$i] . "\n";
    }
    $i++;
}
ご覧のとおり、プログラムは配列内の 10 より大きいすべての要素を正常に出力します。

無限ループ

場合によっては、プログラムを手動で停止するまで、特定の条件が満たされるまで実行し続ける必要があります。現時点では、while ループを使用してこれを実現できます。

たとえば、ユーザーが特定のコマンドを入力するまでプログラムが現在時刻を出力し続けるようにしたいとします。これを実現するには while ループを使用できます:

15
12
14
上記のコードでは、 while ループを使用して現在の時刻を出力し、ユーザーの入力を待ちます。ループ条件は

true

です。これは、ループ本体内のコード ブロックが状況に関係なく実行されることを意味します。

各ループでは、まず date

関数を使用して現在時刻を出力し、その末尾に改行文字を追加します。次に、

readline 関数を使用してユーザー入力を待ちます。ユーザーが stop を入力した場合は、break ステートメントを使用してループを終了します。 上記のコードを実行すると、stop

を入力してプログラムを停止するまで、出力結果が継続的に更新されることがわかります。

ファイルを 1 行ずつ読み取る

while ループを使用して、ファイルを 1 行ずつ読み取ることができます。たとえば、

test.txt

という名前のファイルがあり、各行に数値が含まれているとします。ファイル内のすべての数値を読み取って表示したいとします。これを実現するには、while ループを使用します。

while (true) {
    echo date('Y-m-d H:i:s') . "\n";
    $input = readline();

    if ($input === 'stop') {
        break;
    }
}
上記のコードでは、まず fopen 関数を使用してファイル

test.txt を開き、r モードを使用してファイルが読み取り専用であることを示します。次に、while ループを使用してファイルを 1 行ずつ読み取り、ファイルの終わりが読み取られたときに false を返してループを終了します。 各ループでは、fgets

関数を使用してファイルを 1 行ずつ読み取り、読み取った行を変数

$line に割り当てます。次に、echo 関数を使用して、現在の行の内容を出力します。 最後に、fclose

関数を使用してファイル ハンドルを閉じます。

ファイルの内容が大きすぎる場合、1 行ずつ読み取るとプログラムの実行が遅くなったり、メモリがオーバーフローしたりする可能性があることに注意してください。現時点では、他の方法を使用してファイルを読み取ることを検討できます。

概要

while ループは、PHP で一般的に使用されるループ構造であり、さまざまな実際のアプリケーション シナリオで使用できます。 while ループを使用する場合は、ループ条件の正確さに注意する必要があります。そうしないと、無限ループや予期しない実行が発生する可能性があります。

以上がphpのwhileループ文の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。