Menu
Coddy logo textTech

Switch Statement

CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 32/71。

1 つの変数を多数の特定の値と比較する必要がある場合、switch文 は長い if-elseif 連鎖のよりクリーンな代替手段を提供します。

switch 文は変数を一度チェックしてから、それを異なる case 値と照合します:

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
    default:
        echo "Regular day";
}
?>

PHP は $day を各 case と比較します。一致が見つかったら、そのブロックのコードを実行します。

break 文は重要です — それは一致した case を実行した後、PHP に switch から抜け出させます。それがないと、PHP は他の case からのものであっても、下のすべてのコードを実行し続けます。

土曜日と日曜日が case を連続して積み重ねることで同じコードを共有している点に注目してください。default case は else のように動作します — 他の case が一致しない場合に実行されます。

<?php
$grade = "B";

switch ($grade) {
    case "A":
        echo "Excellent!";
        break;
    case "B":
        echo "Good job!";
        break;
    default:
        echo "Keep trying!";
}
?>

1 つの変数を複数の正確な値と比較する場合に switch を使用します。複雑な条件や範囲の場合は、if-elseif 文を使用してください。

challenge icon

チャレンジ

簡単

入力から交通信号の色を表す文字列 command を読み取ります。

色に基づいて適切なアクションを決定するために switch 文を使用します:

  • コマンドが red の場合、Stop を出力します
  • コマンドが yellow の場合、Slow down を出力します
  • コマンドが green の場合、Go を出力します
  • コマンドが flashing red または flashing yellow の場合、Proceed with caution を出力します
  • その他の値の場合、Invalid signal を出力します

例:

入力が green の場合、出力は次のようになります:

Go

入力が flashing red の場合、出力は次のようになります:

Proceed with caution

入力が blue の場合、出力は次のようになります:

Invalid signal

チートシート

switch 文 は、単一の変数を複数の特定の値に対して比較する、よりクリーンな方法を提供します:

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    default:
        echo "Regular day";
}
?>

break 文は、一致した case を実行した後、switch から抜け出します。それがないと、PHP は次の case のコードを実行し続けます。

複数の case を積み重ねることで、同じコードを共有できます:

<?php
switch ($day) {
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
}
?>

default case は、他の case が一致しない場合に実行され、else 文に似ています。

1 つの変数を複数の正確な値に対して比較する場合は switch 文を使用してください。複雑な条件や範囲の場合は、代わりに if-elseif 文を使用します。

自分で試してみよう

<?php
// 入力を読み取る
$command = trim(fgets(STDIN));

// TODO: switch文を使用して下にコードを書く
// 信号機の色に基づいて適切なアクションを決定する


?>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン