1.
Câu lệnh lựa chọn switch
a.
Ý nghĩa
C++ cung
cấp một câu lệnh cấu trúc switch, cho phép chương trình có thể chọn một trong
nhiều nhánh để thực hiện.
b.
Cú pháp
switch (biểu thức điều khiển)
{
case
biểu_thức_1: dãy lệnh 1 ;
case biểu_thức_2:
dãy lệnh 2 ;
case ..... ;
case
biểu_thức_n: dãy lệnh n ;
default: dãy
lệnh n+1;
}
Trong đó:
- biểu thức điều khiển: phải có kiểu nguyên hoặc
kí tự,
-
các biểu_thức_i: được tạo từ các
hằng nguyên hoặc kí tự,
-
các dãy lệnh có thể rỗng. Không cần bao dãy lệnh
bởi cặp dấu {},
-
nhánh default có thể có hoặc không và
vị trí của nó có thể nằm bất kỳ trong câu lệnh.
Cấu trúc switch trong C/C++ |
c.
Cách thực hiện
- Chương trình tính giá trị của biểu thức điều khiển
(btđk)
- So sánh kết quả của btđk
với giá trị của các biểu_thức_i bên dưới
+ Nếu giá trị của btđk bằng giá trị
của biểu thức thứ i đầu tiên nào đó thì chương trình sẽ thực hiện dãy lệnh thứ
i cho đến
hết.
+ Nếu giá trị của btđk không gặp
biểu thức (nhánh case) nào bằng thì chương trình thực hiện
dãy lệnh trong default.
+ Trường hợp câu lệnh switch không có nhánh default và btđk
không khớp với bất cứ nhánh case nào thì chương trình không làm gì.
Nếu muốn lệnh switch
chỉ thực hiện nhánh thứ i (khi btđk = biểu_thức_i) ta đặt thêm lệnh break;
2. Ví dụ minh hoạ
Ví dụ 1 :
In số ngày của một tháng bất kỳ nào đó được nhập từ bàn phím.
int th;
cout << “Cho
biết tháng cần tính: “ ; cin >> th ;
switch (th)
{
case 1:
case 3: case 5: case 7: case 8: case 10:
case 12:
cout << "tháng này có 31 ngày" ; break ;
case 2:
cout << "tháng này có 28 ngày" ; break;
case 4:
case 6: case 9:
case 11: cout
<< "tháng này có 30 ngày" ; break;
default:
cout << "Bạn đã nhập sai tháng, không có tháng này" ;
}
Ví dụ 2 :
Nhập 2 số a và b vào từ bàn phím. Nhập kí tự thể hiện một trong bốn phép toán:
cộng, trừ, nhân, chia. In ra kết quả thực hiện phép toán đó trên 2 số a, b.
void main()
{
float a, b, c ; // các toán hạng a, b
và kết quả c
char dau ; // phép toán được
cho dưới dạng kí tự
cout <<
"Hãy nhập 2 số a, b: " ; cin >> a >> b ;
cout << "và
dấu phép toán: " ; cin >> dau ;
switch (dau)
{
case '+':
c = a + b ; break ;
case '-': c = a - b ; break ;
case 'x':
case '.': case '*': c = a * b ; break ;
case ':':
case '/': c = a / b ; break ;
}
cout <<
setiosflags(ios::showpoint) << setprecision(4) ; // in 4 số lẻ
cout <<
"Kết quả là: " << c ;
}
Trong chương trình
trên ta chấp nhận các kí tự x, ., * thể
hiện cho phép toán nhân và :, / thể
hiện phép toán chia.
0 Comments