PHP - ドゥ...ウィルループ:ビギナーズガイド
ようこそ、熱心なコーダーさんたち!今日は、PHPのループの楽しい世界に飛び込みます。特に、ドゥ...ウィルループについてです。あなたの近所の親切なコンピュータ教師として、私は多くの例と説明を用いてこの概念をガイドします。まずは、仮想のメモ pad を準備して、ループを始めましょう!
ドゥ...ウィルループとは?
例に進む前に、ドゥ...ウィルループとは何かを理解しましょう。想象して、あなたはサイコロを振り続けて6を得るまでのゲームをしているとします。少なくとも1回はサイコロを振るでしょう、間違いないですよね?这正是ドゥ...ウィルループの動作です!
ドゥ...ウィルループは、ブロックコードを少なくとも1回実行した後、条件が真であるかどうかをチェックします。条件が真の場合、ブロックは繰り返し実行されます。条件が偽になるまで続けます。
さあ、構文を見てみましょう:
do {
// 実行するコード
} while (条件);
例1:基本的なドゥ...ウィルループ
簡単な例から始めましょう:
<?php
$i = 1;
do {
echo "The number is: $i <br>";
$i++;
} while ($i <= 5);
?>
ここで何が起きているのか?
- 変数
$i
を1で初期化します。 - ループは
do
から始まり、現在の$i
の値を echo します。 -
$i
を1増やします。 - 閉じ括弧の後には
while
条件があります。$i
が5以下かどうかをチェックします。 - 条件が真の場合、ループは続きます。偽の場合、停止します。
出力:
The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5
例2:ユーザー入力を使用したドゥ...ウィルループ
もっとインタラクティブにしましょう!シンプルな当てものゲームを作成します:
<?php
$secretNumber = 7;
do {
$guess = (int)readline("Guess the number (between 1 and 10): ");
if ($guess < $secretNumber) {
echo "Too low! Try again.\n";
} elseif ($guess > $secretNumber) {
echo "Too high! Try again.\n";
}
} while ($guess != $secretNumber);
echo "Congratulations! You guessed it right!";
?>
この例では:
- シークレットな数字(この場合は7)を設定します。
- ループはユーザーに数字を当てるように求めます。
- 当てが低すぎる場合や高すぎる場合にフィードバックを提供します。
- 正しい数字が当てられるまでループが続きます。
これは、ドゥ...ウィルループが入力の検証やシンプルなゲーム作成にどのように使えるかを示しています!
例3:ファイル読み取りにおけるドゥ...ウィルループ
もう少し実用的な例を見てみましょう - ファイルから行を読み取る:
<?php
$file = fopen("sample.txt", "r");
do {
$line = fgets($file);
if ($line !== false) {
echo $line . "<br>";
}
} while ($line !== false);
fclose($file);
?>
ここで何が起きているのか:
- "sample.txt" というファイルを読み取りモードで開きます。
- ループはファイルから一行読み取ります。
- 行が偽でない場合(つまり、ファイルの終わりではない場合)、それを echo します。
- ファイルの終わりに達するまでループが続きます。
- 最後に、ファイルを閉じます。
この例は、ドゥ...ウィルループがファイル操作にどのように使えるかを示しています!
デクリメントするドゥ...ウィルループ
さあ、ドゥ...ウィルループを使って後退カウントダウンを试试みましょう:
<?php
$countdown = 5;
do {
echo "T-minus $countdown...<br>";
$countdown--;
} while ($countdown > 0);
echo "Blast off! ?";
?>
この宇宙のカウントダウンでは:
-
$countdown
を5に設定します。 - ループは現在のカウントダウン番号を表示します。
-
$countdown
を1減らします。 -
$countdown
が0より大きい間、ループが続きます。 - 0に達すると、blast off!
出力:
T-minus 5...
T-minus 4...
T-minus 3...
T-minus 2...
T-minus 1...
Blast off! ?
文字列を反対方向に進める
さあ、創造的に文字列を反対方向に進めるドゥ...ウィルループを使ってみましょう:
<?php
$str = "Hello, World!";
$length = strlen($str) - 1;
do {
echo $str[$length];
$length--;
} while ($length >= 0);
?>
ここで何が起きているのか?
- "Hello, World!" という文字列を始めます。
- 文字列の最後のインデックス(長さ - 1)を取得します。
- ループは末尾から各文字を表示します。
- インデックスを1ずつ減らします。
- 最初の文字を表示するまでループが続きます。
出力:
!dlroW ,olleH
ネストされたドゥ...ウィルループ
最後に、楽しいパターンを作るためにネストされたドゥ...ウィルループを見てみましょう:
<?php
$i = 1;
do {
$j = 1;
do {
echo "* ";
$j++;
} while ($j <= $i);
echo "<br>";
$i++;
} while ($i <= 5);
?>
これはどうなるのか:
- 外側のループは行数(5回)を制御します。
- 内側のループは各行に星を表示します。
- 各行の星の数は行番号に等しいです。
-
<br>
を使って各行の後ろに改行を追加します。
出力:
*
* *
* * *
* * * *
* * * * *
メソッド表
以下は、私たちが例で使用したメソッドの表です:
メソッド | 説明 |
---|---|
echo | 一つまたは複数の文字列を出力します |
readline | ユーザー入力から一行を読み取ります |
fopen | ファイルまたはURLを開きます |
fgets | ファイルポインタから一行を取得します |
fclose | 開いているファイルポインタを閉じます |
strlen | 文字列の長さを返します |
そして、それで終わりです、皆さん!私たちはPHPのドゥ...ウィルループの内外をループしました。練習が完璧を生むことを忘れないでください、 coding とこれらのループを試行錯誤を続けてください。間もなく、あなたはコードの挑戦をループで克服するでしょう!ハッピーコーディング!??
Credits: Image by storyset