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.
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 raStop - Nếu lệnh là
yellow, in raSlow down - Nếu lệnh là
green, in raGo - Nếu lệnh là
flashing redhoặcflashing yellow, in raProceed 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à:
GoNếu đầu vào là flashing red, đầu ra phải là:
Proceed with cautionNếu đầu vào là blue, đầu ra phải là:
Invalid signalTự 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
?>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
4Toán tử so sánh và logic
Toán tử so sánhBằng nhau và đồng nhấtToán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giản2Biến và kiểu dữ liệu
SốChuỗi và dấu ngoặc képGiá trị BooleanQuy ước đặt tênÔn tập: khởi tạo biếnBiến rỗngNối chuỗiNhận đầu vào từ người dùngChuyển đổi sang kiểu dữ liệu khác5Logic điều kiện
Câu lệnh ifIf và elseToán tử ba ngôiToán tử kết hợp nullCâu lệnh switchÔn tập: đưa ra quyết định3Các toán tử cơ bản
Toán tử số họcToán tử chia lấy dưToán tử lũy thừaPhép gán kết hợpTăng/giảmThứ tự ưu tiên của toán tửÔn tập: phép tính đơn giảnToán tử chuỗiTự luyện tập: Trình biên dịch PHP online