C++ cấu trúc rẽ nhánh: câu lệnh switch

Cấu trúc lựa chọn switch

Cú pháp:

Switch (biểu thức điều khiển)
{
case biểu thức 1:dòng lệnh 1;
break;
case biểu thức 2:dòng lệnh 2;
break;

case biểu thức n: dòng lệnh n
break;
default: dãy lệnh n+1;
}

Để thực hiện câu lệnh switch đầu tiên chương trình tính giá trị của biểu thức điều
khiển (btđk), sau đó 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
lần lượt từ biểu thức đầu tiên (thứ nhất) cho đến biểu thức cuối cùng (thứ n), 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. Nếu sau lệnh thứ i không có lệnh break thì sẽ tiếp tục thực hiện tất cả
dãy lệnh còn lại (từ dãy lệnh thứ i+1) cho đến hết (gặp dấu ngoặc đóng } của lệnh switch).
Nếu quá trình so sánh không gặp biểu thức (nhánh case) nào bằng với giá trị của btđk 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ì, coi
như đã thực hiện xong lệnh switch.
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” ;
}

Trong chương trình trên giả sử NSD nhập tháng là 5 thì chương trình bắt đầu thực
hiện dãy lệnh sau case 5 (không có lệnh nào) sau đó tiếp tục thực hiện các lệnh còn lại,
cụ thể là bắt đầu từ dãy lệnh trong case 7, đến case 12 chương trình gặp lệnh in kết quả
“tháng này có 31 ngày”, sau đó gặp lệnh break nên chương trình thoát ra khỏi câu lệnh
switch (đã thực hiện xong). Việc giải thích cũng tương tự cho các trường hợp khác của
tháng. Nếu NSD nhập sai tháng (ví dụ tháng nằm ngoài phạm vi 1..12), chương trình
thấy th không khớp với bất kỳ nhánh case nào nên sẽ thực hiện câu lệnh trong default,
in ra màn hình dòng chữ “Bạn đã nhập sai tháng, không có tháng này” và kết thúc lệnh.

Chia sẻ

Leave a Reply

Your email address will not be published. Required fields are marked *