PHP 制御構造: If else、Switch Case

⚡ スマートサマリー

制御構造とループは、PHPプログラムの実行経路を決定し、コードブロックを効率的に繰り返します。このチュートリアルでは、if-elseとswitchの条件分岐構造について説明した後、競技者がこのトピックで期待するfor、while、do-while、foreachループについて解説します。

  • 🔀 制御フロー: 制御構造は、条件に基づいてどのコードを実行するかを選択し、単純なコードシーケンスを意思決定に基づくロジックに変換する。
  • 🔤 もしも: if-else構造は、条件が真の場合に1つのブロックを実行し、条件が偽の場合にフォールバックブロックを実行します。
  • 🧮 スイッチケース: switch文は、1つの値を複数のcaseラベルと比較し、一致するブロックを実行します。一致するものがない場合は、デフォルトのブロックを実行します。
  • 🔁 ループの概要: ループはコードブロックを繰り返し実行することで、同じ文を何度も記述する手間を省きます。
  • 🔢 カウントループ: for と while 条件が満たされている間繰り返す。条件がわかっている場合や、 trackは必要な反復回数です。
  • 📦 Foreachループ: foreach は、インデックス カウンターを自分で管理することなく、配列のすべての要素を順に処理します。
  • 🤖 AIアシスト: AIツールは、長いif-else文の連鎖をswitch文やmatch文にリファクタリングし、無限ループの修正に役立ちます。

PHPの制御構造とループ

制御構造とは何ですか?

Code 実行は、以下に示すようにカテゴリに分類できます。

  • シーケンシャル これは、記述された順序で全てのコードを実行することを意味します。
  • 決定 – これには、いくつかのオプションが与えられた上で選択を行う必要があります。 実行されるコードは条件の値によって異なります。

制御構造体は、設定された条件の値に応じてプログラムの実行パスを決定するコードのブロックです。

それでは、いくつかの制御構造を見ていきましょう。 PHP サポート。

PHP IF Else

If... then... else は 最も単純な制御構造条件をブール論理を用いて評価します。

if... then... else を使用する場合

  • 特定の条件が真の場合にのみ実行されるコードのブロックがある
  • XNUMX つのオプションがあり、XNUMX つを選択する必要があります。
  • If… then… else if… は、XNUMX つ以上のオプションを選択する必要があり、XNUMX つ以上を選択する必要がある場合に使用されます。

構文。 if… then… else の構文は次のとおりです。

<?php
if (condition is true) {
    block one
} else {
    block two
}
?>

ここに、

  • (条件が真の場合)」は制御構造です
  • ブロックXNUMX” は条件が true の場合に実行されるコードです
  • ほかに 条件が false の場合のフォールバックです
  • ブロックXNUMX” は、条件が false の場合に実行されるコードのブロックです。

使い方。 以下のフローチャートは、if…then…else制御構造がどのように機能するかを示しています。

PHP IF Else

実際に見てみましょう。 以下のコードでは、「if… then… else」を使用して、2 つの数値のうち大きい方の値を決定します。

<?php

$first_number = 7;

$second_number = 21;

if ($first_number > $second_number){

echo "$first_number is greater than $second_number";

}else{

echo "$second_number is greater than $first_number";

}

?>

出力:

21 is greater than 7

PHPスイッチケース

スイッチケース に似ています もし…ならば…そうでなければ… 制御構造。

それだけ 実行 単一のコードブロックは、 状態の。

いずれの条件も満たされていない場合は、デフォルトのコードブロックが実行されます。

基本的な構文は次のとおりです。

<?php
switch(condition){

case value:

// block of code to be executed

break;

case value2:

// block of code to be executed

break;

default:

// default block code

break;

}
?>

ここに、

  • "スイッチ(…){…}" 制御構造のブロックコードです
  • 「ケース値: ケース…」 条件の値に応じて実行されるコードのブロックです。
  • "デフォルト:" は、条件に一致する値がない場合に実行されるコードブロックです。

仕組み

下図のフローチャートは、スイッチ制御構造の仕組みを示しています。

PHPスイッチケース

実際の例

以下のコードは、スイッチ制御構造体を使用して、曜日に応じてメッセージを表示します。

<?php

$today = "wednesday";

switch($today){

case "sunday":

echo "pray for us sinners.";

break;

case "wednesday":

echo "ladies night, take her out for dinner";

break;

case "saturday":

echo "take care as you go out tonight.";

break;

default:

echo "have a nice day at work";

break;

}

?>

出力:

ladies night, take her out for dinner

PHPループ

ループは、条件が真である限りコードブロックを繰り返す制御構造です。同じステートメントを何度も記述する手間を省きます。PHPは、for、while、do-while、foreachの4種類のループをサポートしています。より詳細な解説については、専用のドキュメントを参照してください。 PHPループチュートリアル.

PHP For ループ

forループは、コードの実行回数が事前にわかっている場合に使用します。カウンター、条件、インクリメントを1行にまとめることができます。

<?php
for ($i = 0; $i < 5; $i++) {
    echo $i;
}
?>

出力:

01234

PHPのwhileループ

whileループは、条件が真である限り、ブロックを繰り返し実行します。条件は各イテレーションの前にチェックされるため、ループ本体は0回実行される可能性があります。

<?php
$i = 0;
while ($i < 5) {
    echo $i;
    $i++;
}
?>

出力:

01234

PHPのdo-whileループ

do-whileループはwhileループに似ていますが、条件チェックを本体の後に行います。これにより、ブロックが少なくとも1回は実行されることが保証されます。

<?php
$i = 0;
do {
    echo $i;
    $i++;
} while ($i < 5);
?>

出力:

01234

PHPのforeachループ

foreachループは配列用に設計されています。インデックスカウンターを管理することなく、すべての要素を順番に処理します。

<?php
$colors = array("red", "green", "blue");
foreach ($colors as $color) {
    echo $color . " ";
}
?>

出力:

red green blue

よくあるご質問

1つの変数を複数の固定値と比較する場合は、長いif-else文の連鎖よりも読みやすいswitch文を使用してください。範囲指定、複雑な条件、または異なる変数を含む比較にはif-else文を使用してください。

break はループを完全に停止し、その後のコードに移動します。continue は現在のイテレーションの残りをスキップし、ループを完全に終了することなく次のイテレーションに移動します。

matchはPHP 8で導入された、switchに代わる現代的な構文です。値を返し、厳密な比較を行い、break文を必要とせず、一致するアームがない場合はエラーをスローするため、より安全で簡潔です。

はい。AI は長い if-else チェーンを同等の switch または PHP 8 の match 式に書き換えることができます。ping ロジックは同じまま、コードをより短く、読みやすくします。その後、結果をテストしてください。

はい。AIはループ条件とカウンターを検査し、インクリメントの欠落や決して偽にならない条件を検出し、ループが意図どおりに終了するように修正案を提案できます。