Bài 2.04. Cấu trúc điều khiển switch
Nội dung bài học
Mục đích sử dụng
- Sử dụng cấu trúc switch khi một biểu thức nào đó có nhiều hơn 1 trường hợp cần đánh giá. Các biểu thức của cấu trúc này thường là các hằng số, các kiểu nguyên.
- Như vậy:
- Nếu một biểu thức chỉ có hoặc đúng hoặc sai ta dùng cấu trúc if
- Nếu một biểu thức cần đối chiếu với nhiều giá trị khác nhau, ta dùng cấu trúc switch
- Ví dụ 1: xét về tên ngày trong tuần, có tới 7 khả năng xảy ra: từ thứ Hai đến Chủ nhật.
- Ví dụ 2: Xét một mùa của năm, ta có 4 lựa chọn: xuân hạ thu đông…
Cú pháp tổng quát
- Sau đây là cú pháp tổng quát của cấu trúc switch:
switch (biểu_thức) {
case giá_trị1:
// làm gì đó nếu trường hợp này xảy ra
break;
case giá_trị2:
// làm gì đó nếu trường hợp này xảy ra
break;
case giá_trị3:
// làm gì đó nếu trường hợp này xảy ra
break;
...
default:
// làm gì đó nếu tất cả các case phía trên không xảy ra
}
- Trong đó:
- Cấu trúc bắt đầu với từ khóa switch
- Kế tiếp là cặp ngoặc tròn ()
- Bên trong ngoặc tròn là biểu thức có tính chất nguyên, ví dụ biến kiểu nguyên( như char, short, int), hằng số, enum, string…
- Phần thân switch ở phía trong cặp ngoặc {}
- Mỗi case tương đương với 1 if
- Đi sau case là dấu cách, sau đó đến giá trị cần đối sánh và cuối cùng là dấu hai chấm. Giá trị cần đối sánh phải cùng kiểu với kiểu của biểu thức trong switch.
- Nội dung cần thực hiện của mỗi case sẽ viết sau dấu hai chấm :
- Kết thúc mỗi case là từ khóa break. Nhiệm vụ của break là thoát khỏi cấu trúc switch khi thực hiện xong nhiệm vụ. Nếu bạn quên break, các case liền dưới của case hiện tại sẽ được thực hiện cho dù case đó không thỏa mãn. Việc thực hiện khối switch sẽ chỉ dừng khi gặp break hoặc đến khi kết thúc khối switch.
- Tại mỗi thời điểm thường thì chỉ có một case của switch được thực hiện.
- Nếu sau khi tất cả các case được đánh giá mà không có case nào được thực hiện, khối default sẽ được thực hiện. Kết thúc khối default không cần có break nhưng bạn có thể thêm vào. default luôn ở sau cùng cấu trúc switch.
Sơ đồ khối
- Sau đây là sơ đồ khối tổng quát của cấu trúc switch:
Ví dụ minh họa
- Vấn đề: Viết chương trình cho phép người dùng nhập vào 2 số nguyên và các lựa chọn từ 0-4 và thực hiện các chức năng tương ứng như sau:
- 0: thoát chương trình
- 1: cộng hai số
- 2: trừ hai số
- 3: nhân hai số
- 4: chia hai số
- Sau đây là sơ đồ khối phần xử lý logic chính của bài tập trên:
- Code mẫu:
// Minh họa sử dụng switch-case
#include <iostream>
using namespace std;
int main() {
int choice; // lựa chọn
int number1;
int number2;
cout << "Enter two integer numbers: ";
cin >> number1 >> number2;
cout << "======== Basic Calculator ========" << endl;
cout << "0. Exit" << endl;
cout << "1. +" << endl;
cout << "2. -" << endl;
cout << "3. *" << endl;
cout << "4. /" << endl;
cout << "Your choice? ";
cin >> choice;
switch (choice)
{
case 0:
cout << "Thank you for using our's service!" << endl;
break;
case 1:
{
int sum = number1 + number2;
cout << number1 << " + " << number2 << " = " << sum << endl;
break;
}
case 2:
{
int dif = number1 - number2;
cout << number1 << " - " << number2 << " = " << dif << endl;
break;
}
case 3:
{
int prod = number1 * number2;
cout << number1 << " * " << number2 << " = " << prod << endl;
break;
}
case 4:
{
if (number2 != 0) {
float quot = 1.0f * number1 / number2;
cout << number1 << " / " << number2 << " = " << quot << endl;
}
else {
cout << "Cannot do / 0 operation." << endl;
}
break;
}
default:
cout << "Invalid operation. Please try again!" << endl;
break;
}
}
Enter two integer numbers: 10 25
======== Basic Calculator ========
0. Exit
1. +
2. -
3. *
4. /
Your choice? 4
10 / 25 = 0.4
Bài tập thực hành
- Đề bài đầy đủ: nhấn vào đây
- Lời giải mẫu: nhấn vào đây



