Javascript - Câu lệnh Switch
Câu lệnh Switch trong JS
Switch so sánh một biểu thức nguyên với một danh sách giá trị các số nguyên, các hằng kí tự hoặc biểu thức hằng. Mỗi giá trị trong danh sách chính là một case (trường hợp) trong khối lệnh của switch. Ngoài ra, trong khối lệnh switch còn có thể có một default case (trường hợp mặc định) có thể có hoặc không. Mặt khác, trong mỗi trường hợp còn chứa các khối lệnh chờ được thực thi.
Cú pháp của cấu trúc rẽ nhánh switch…case
Muốn sử dụng cấu trúc switch…case, bạn dùng cú pháp như sau:
switch (expression)
{
case constant_1:
{
Statements;
break;
}
case constant_2:
{
Statements;
break;
}
.
.
.
case constant_n:
{
Statements;
break;
}
default:
{
Statements;
}
}
Sơ đồ hoạt động của cấu trúc switch…case như sau:
Ví dụ:
<script>
date = new Date();
month = date.getMonth();
switch(month){
case 0 :
document.write("Tháng giêng là tháng ăn chơi");
break;
case 1:
case 2:
document.write("Tháng hai cờ bạc, tháng ba rượu chè");
break;
case 3:
document.write("Tháng tư là tháng lè phè");
break;
case 4:
case 5:
document.write("Tháng năm, tháng sáu hội hè vui chơi");
break;
case 6:
document.write("Tháng bảy là tháng nghĩ ngơi (tháng cô hồn)");
break;
case 7:
case 8:
document.write("Tháng tám, tháng chín xả hơi bạn bè");
break;
case 9:
case 10:
document.write("Tháng mười, tháng chín xôi chè");
break;
case 11:
document.write("Tháng chạp cá chép, cá mè vớt lên");
break;
default:
document.write("Hết đời!");
}
</script>
Nguyên tắc hoạt động cấu trúc switch…case
Biểu thức nguyên trong switch được tính toán và kiểm tra lần lượt với giá trị của từng case. Đầu tiên, nó sẽ được so sánh với giá trị của case đầu tiên, nếu bằng nhau thì sẽ thực hiện các lệnh (statement) trong case này cho đến khi nó gặp được từ khoá break. Khi đó, cấu trúc switch…case kết thúc. Chương trình sẽ thực hiện tiếp những dòng lệnh sau cấu trúc switch…case. Ngược lại, nếu như giá trị biểu thức nguyên không bằng giá trị case đầu tiên thì nó sẽ tiếp tục so sánh đến giá trị của case thứ hai và tiếp tục thực hiện như những bước trên. Giả sử, đến cuối cùng vẫn không tìm được giá trị bằng nó thì các khối lệnh trong default sẽ được thực hiện nếu như có tồn tại default.