Trong bài này, bạn sẽ học cách tạo một câu lệnh switch trong C++ (với ví dụ).
Câu lệnh dạng bậc if..else..if cho phép bạn thực thi một khối mã nguồn giữa rất nhiều lựa chọn. Nếu bạn đang kiểm tra giá trị của một biến duy nhất trong câu lệnh dạng bậc if..else..if, thì bạn nên sử dụng câu lệnh switch.
Câu lệnh switch thường nhanh hơn if..else (không phải luôn luôn). Ngoài ra, cú pháp của câu lệnh switch cũng gọn gàng và dễ hiểu hơn.
Cú pháp switch..case trong C++
switch (n)
{
case hằng_số1:
// mã nguồn cần thực thi nếu n bằng hằng_số1;
break;
case hằng_số2:
// mã nguồn cần thực thi nếu n bằng hằng_số2;
break;
.
.
.
default:
// mã nguồn cần thực thi nếu n không bằng bất kỳ hằng số nào
}
Khi giá trị biểu thức trong câu lệnh if bằng với giá trị hằng số trong một trường hợp nào đó, đoạn mã nguồn đi kèm với trường hợp đó sẽ được thực hiện.
Trong đoạn mã giả trên, giả sử giá trị n bằng với hằng_số2. Trình biên dịch sẽ thực thi khối mã nguồn đi kèm với câu lệnh trong trường hợp đó cho tới khi kết thúc khối switch hoặc cho tới khi gặp câu lệnh break.
Câu lệnh break được sử dụng để ngăn việc mã nguồn sẽ chạy tiếp sang trường hợp tiếp theo.
Flowchart của câu lệnh switch
Hình vẽ trên chỉ ra cách một câu lệnh switch hoạt động và các điều kiện được kiểm tra bên trong mệnh đề của từng trường hợp trong câu lệnh switch.
Ví dụ: câu lệnh switch trong C++
// Chương trình xây dựng một máy tính (calculator) đơn giản sử dụng câu lệnh switch
#include <iostream>
using namespace std;
int main()
{
char o;
float num1, num2;
cout << "Enter an operator (+, -, *, /): ";
cin >> o;
cout << "Enter two operands: ";
cin >> num1 >> num2;
switch (o)
{
case '+':
cout << num1 << " + " << num2 << " = " << num1+num2;
break;
case '-':
cout << num1 << " - " << num2 << " = " << num1-num2;
break;
case '*':
cout << num1 << " * " << num2 << " = " << num1*num2;
break;
case '/':
cout << num1 << " / " << num2 << " = " << num1/num2;
break;
default:
// Toán tử không giống với bất kỳ trường hợp nào (+, -, *, /)
cout << "Error! operator is not correct";
break;
}
return 0;
}
Đầu ra
Enter an operator (+, -, *, /): +
– Enter two operands: 2.3 4.5 2.3 – 4.5 = -2.2 |
Toán tử – được nhập vào bởi người dùng và được lưu vào biến o. Sau đó, hai toán hạng 2.3 và 4.5 lần lượt được lưu vào biến num1 và num2.
Sau đó, chương trình sẽ thực hiện câu lệnh
cout << num1 << " - " << num2 << " = " << num1-num2;
Cuối cùng, câu lệnh break sẽ ngắt câu lệnh switch.
Nếu câu lệnh break không được sử dụng, mọi trường hợp ở sau trường hợp đúng sẽ được thực thi.