複数条件のあるswitch文で実行結果がおかしいとき

2013年5月27日

次の例では、switch文による条件分岐がうまくいかず、おみくじの結果が「大当たり中当たりハズレ」のようにすべて表示されてしまいます。

<?php
$a = mt_rand(1, 5);
switch ($a) {
    case 1:
        echo "大当たり";
    case 2:
        echo "中当たり";
    default:
        echo "ハズレ";
}
?>

switch文で条件分岐させるには、それぞれのcaseの最後にbreak文を追加して、1つの条件に当てはまったらswitch文を抜けるようにする必要があります。

<?php
$a = mt_rand(1, 5);
switch ($a) {
    case 1:
        echo "大当たり";
        break; // 追加
    case 2:
        echo "中当たり";
        break; // 追加
    default:
        echo "ハズレ";
}
?>
スポンサーリンク

PHP・WordPress修正サポートのご案内

PHP修正サポートへの問い合わせ

PHP修正サポートへのお問い合わせはこちらからお願いします。

PHPの基礎が身に付いたかチェック!

PHP「直す力」養成ドリル