PHP - ループ
「for」ループのフローチャート
シンタックスと例に取り組む前に、まず「for」ループがどのように動作するかを視覚化してみましょう。 「for」ループは、指令のセットを通過するコンベヤベルトのようなものです。初期条件で始まり、終了条件を満たすかどうかをチェックし、その後コードブロック内のコードを実行します。コードブロックが実行されると、カウンタを更新し、終了条件が満たされないまでプロセスを繰り返します。
st=>start: 開始
e=>end: 終了
op1=>operation: カウンタ初期化
cond=>condition: 終了条件をチェック
op2=>operation: カウンタ更新
op3=>operation: コードブロック実行
cond2=>condition: 終了条件を満たしたか?
op4=>operation: いいえ、op2に戻る
op5=>operation: はい、終了に進む
st->op1->cond
cond(yes)->op3->op2->cond2
cond2(no)->op4->op2
cond2(yes)->op5->e
「for」ループのシンタックス
PHPにおける「for」ループの基本シンタックスは以下の通りです:
for (初期化; 条件; 増加減少) {
// 実行されるコード
}
- 初期化: ここでカウンタ変数を初期化します。
- 条件: この条件が真である限りループを続けます。偽の場合、ループは停止します。
- 増加減少: ここでカウンタを更新します。必要に応じて増加または減少させます。
例
簡単な例で、「for」ループを使用して1から5までの数字を表示してみましょう。
<?php
for ($i = 1; $i <= 5; $i++) {
echo $i . " ";
}
?>
この例では、$iを1に初期化し、$iが5以下かどうかをチェックし、それぞれの反復で$iを1増やします。echo
ステートメントは$iの値とスペースを表示します。
無限の「for」ループ
ループを書く際には注意が必要です。無限ループはプログラムをクラッシュさせたり、応答しなくなったりすることがあります。以下は無限ループの例です:
<?php
for (;;) {
echo "このループは永久に実行されます!";
}
?>
このループには初期化、条件、増加減少がありません。したがって、無限に実行されます。これを停止するには、ターミナルで「Ctrl + C」を押すなどして実行を手動で中断する必要があります。
減少する「for」ループ
減少する「for」ループは増加する「for」ループと似ていますが、カウンタを増やす代わりに減らします。以下は5から1までカウントダウンする例です:
<?php
for ($i = 5; $i >= 1; $i--) {
echo $i . " ";
}
?>
「for…endfor」構造の使用
PHPは「foreach」構造を使用して「for」ループの省略記法を提供しています。しかし、今回は従来の「for」ループに焦点を当てます。
インデックス配列の反復
「for」ループを使用してインデックス配列を反復し、各要素のインデックスをアクセスすることができます。以下はその例です:
<?php
$fruits = array("apple", "banana", "cherry");
for ($i = 0; $i < count($fruits); $i++) {
echo $fruits[$i] . " ";
}
?>
この例では、count()
関数を使用して$fruits配列の要素数を決定し、その後各要素のインデックスを使用して反復します。
協応配列の反復
協応配列を扱う際には、「for」ループを使用してキーと値の両方を反復することができます。以下はその例です:
<?php
$students = array(
"Alice" => 25,
"Bob" => 27,
"Charlie" => 22
);
foreach ($students as $name => $age) {
echo "$name is $age years old.<br>";
}
?>
この例では、「foreach」構造を使用して$students協応配列を反復します。$name変数はキー(学生の名前)を保持し、$age変数は値(学生の年齢)を保持します。その後、各学生の名前と年齢を表示します。
ネストされた「for」ループの使用
より複雑なタスクを実行するために、ネストされた「for」ループを使用することがあります。以下は掛け算表を表示する例です:
<?php
for ($i = 1; $i <= 5; $i++) {
for ($j = 1; $j <= 5; $j++) {
echo $i * $j . "\t";
}
echo "<br>";
}
?>
この例では、外側のループが行(1から5)を反復し、内側のループが列(も同じく1から5)を反復します。行と列の番号の積を表示して、掛け算表を作成します。
PHPにおける「for」ループの紹介は以上です!実践により完璧にするため、さまざまなシナリオでコードを書いて実験してみてください。快適なコーディングを!
Credits: Image by storyset