Câu lệnh lựa chọn có cấu trúc như sau:
Cú pháp:switch(biểu_thức) { case hằng_1: nhóm_các_lệnh; break; case hằng_2: nhóm_các_lệnh; break; … default: nhóm_các_lệnh; }
Giải thích: kiểm tra giá trị của biểu thức, nếu giá trị của biểu thức rơi vào danh sách hằng, thì nó sẽ thực hiện các lệnh tương ứng trong từng trường hợp case (nếu là hằng_1 – các lệnh trong trường hợp case hằng_1, ….). Nếu biểu thức không thuộc vào danh sách hằng, thì nó sẽ thực hiện lệnh trong trường hợp default.
#include <iostream> using namespace std; int main() { char n; cout<<"Ban la nam hay nu b/g:" cin>>n; switch(n) { case 'b': cout<<"Nam"; break; case 'g': cout<<"Nu"; break; default: cout<<"Khong xac dinh"; } return 0; }
Chương trình | Kết quả |
Ban la nam hay nu b/g:b Nam |
Chú ý:
Lệnh switch chỉ được lựa chọn để sử dụng khi cần kiểm tra giá trị của một biểu thức có tương ứng với một tập các hằng số nào đó hay không (sự tương ứng ở đây có thể là thuộc hoặc không thuộc tương ứng với khái niệm trong tập hợp). Các hằng_1, hằng_2,… có thể là một vùng liên tục, hoặc gián đoạn (như các số từ 0..1, ‘a’..’d’,…). Nhưng nhất thiết các giá trị tương ứng với các trường hợp case phải là hằng số (hoặc khoảng hằng).
Biểu thức trong lệnh switch nhất thiết không phải là một kiểu có cấu trúc (mảng, xâu, tập hợp…). Ví dụ sau đây sẽ phát sinh lỗi khi biên dịch, do biểu thức tương ứng với một xâu.
string s = "abc"; switch(s) { case "a": case "ab": case "abc": default: }Error Trong hầu hết các ngôn ngữ lập trình, đại đa số đều không cho phép tham số trong switch là một xâu (cũng như lệnh case of trong họ Pascal – Delphi). Tuy nhiên, ngôn ngữ C# vẫn hỗ trợ xâu kí tự trong tham số của switch dù nó là một dẫn xuất của C++.
Một điều bạn cần lưu ý, về bản chất thì câu lệnh switch sẽ tương ứng với một dãy các câu lệnh if. Chúng hoàn toàn có thể thay thế cho nhau. Cũng tương tự, các câu lệnh lặp while, do..while và for cũng có thể thay thế cho nhau. Tuy nhiên, chúng vẫn được sử dụng trong các trường hợp mang tính đặc trưng của chúng. Bảng sau đây tổng hợp các cách sử dụng của các lệnh có cấu trúc thường được sử dụng.
Tên lệnh | Cách dùng |
if…else | Khi cần kiểm tra một hoặc một vài điều kiện mang tính chất logic. |
switch | Khi cần kiểm tra điều kiện tương ứng hoặc thuộc vào của một biến số trong một danh sách hằng tương ứng. |
for | Lặp có số vòng lặp xác định |
while | Cần kiểm tra điều kiện lặp trước khi thực hiện lệnh, lặp không xác định số vòng lặp. |
do…while | Kiểm tra điều kiện lặp sau khi thực hiện lệnh, lặp không xác định số vòng lặp. |
break | Cần thoát khỏi vòng lặp. |
continue | Bỏ qua vòng lặp hiện tại. |
goto | Nhảy đến một nhãn được chỉ đinh. Nên tránh sử dụng, chỉ sử dụng trong những trường hợp thực sự cần thiết. |
Bài tập 6.
|
No comments:
Post a Comment