Menu
CoddyTech

Câu lệnh switch

Thuộc phần Kiến thức cơ bản trong hành trình PHP của Coddy. Bài học 32 trên 71.

Khi cần so sánh một biến với nhiều giá trị cụ thể, câu lệnh switch (switch statement) là lựa chọn gọn gàng hơn so với các chuỗi if-elseif dài.

Câu lệnh switch kiểm tra một biến một lần rồi so khớp biến đó với các giá trị case khác nhau:

<?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 so sánh $day với từng trường hợp. Khi tìm thấy trường hợp khớp, PHP chạy code trong khối lệnh đó.

Câu lệnh break rất quan trọng. Nó yêu cầu PHP thoát khỏi switch sau khi thực thi case khớp. Nếu không có câu lệnh này, PHP sẽ tiếp tục chạy tất cả code bên dưới, kể cả code trong các case khác.

Hãy chú ý cách thứ Bảy và Chủ nhật dùng chung một đoạn code bằng cách xếp các trường hợp cạnh nhau. Trường hợp default hoạt động như câu lệnh else. Nó chạy khi không có trường hợp nào khác khớp.

<?php
$grade = "B";

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

Dùng switch khi so sánh một biến với nhiều giá trị chính xác. Với điều kiện phức tạp hoặc phạm vi, hãy dùng câu lệnh if-elseif.

challenge icon

Thử thách

Dễ

Đọc một chuỗi command từ đầu vào, biểu thị màu của đèn giao thông.

Dùng câu lệnh switch để xác định hành động phù hợp dựa trên màu sắc:

  • Nếu lệnh là red, in ra Stop
  • Nếu lệnh là yellow, in ra Slow down
  • Nếu lệnh là green, in ra Go
  • Nếu lệnh là flashing red hoặc flashing yellow, in ra Proceed with caution
  • Với mọi giá trị khác, in ra Invalid signal

Ví dụ:

Nếu đầu vào là green, đầu ra phải là:

Go

Nếu đầu vào là flashing red, đầu ra phải là:

Proceed with caution

Nếu đầu vào là blue, đầu ra phải là:

Invalid signal

Tự làm thử

<?php
// Đọc đầu vào (input)
$command = trim(fgets(STDIN));

// TODO: Viết code bên dưới bằng câu lệnh switch
// Xác định hành động phù hợp dựa trên màu đèn giao thông


?>
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Trình biên dịch PHP online