1. Trang chủ
  2. » Công Nghệ Thông Tin

2 3 switch case statements lập trình C++ daynhauhoc.com

5 143 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 824,24 KB

Nội dung

Trang 1

2.3 switch case statements

Thursday, September 21, 2017 7:01 PM

Được cắt từ: https://cpp.daynhauhoc.com/2/3-switch-case-statements/

Xin chào các bạn học viên đang theo dõi khóa học lập trình trực tuyến ngôn ngữ C++

Trong bài học này, chúng ta cùng nhau tìm hiểu câu lệnh được xây dựng sẵn trong ngôn ngữ lập trình C++ cũng được đưa vào dạng cấu trúc rẽ nhánh có điều kiện Đó là câu lệnh được tạo nên bởi từ khóa switch và case, con goi la switch case statement

switch case statement thudng dudc dung dé thay thé cho if statement trong trường hợp số lượng trường hợp cần so sánh quá dài Mặc dù chúng ta có thể sử dụng kỹ thuật chaining ¡f statement để nối các trường hợp cần kiểm tra lại với nhau, nhưng nó khiến chương trình khó đọc Ví dụ: int main() { cout << "1: BLACK\n2: BLUE\n3: GREEN\n4: YELLOW\n5: WHITE" << endl; cout << "Enter your favorite color: "; int color; cin >> color; if (color == 1) cout << "You like BLACK color" << endl; else if (color == 2) cout << "You like BLUE color" << endl; else if (color == 3) cout << "You like GREEN color” << endl; else if (color == 4) cout << "You like YELLOW color" << endl; else if (color == 5) cout << "You like WHITE color" << endl; else cout << "Unknown" << endl; system("pause"); return 0; }

Trang 2

Switch (color) { case 1: cout << "You like BLACK color" << endl; break; case 2: cout << "You like BLUE color" << endl; break; case 3: cout << "You like GREEN color” << endl; break; case 4: cout << "You like YELLOW color" << endl; break; case 5: cout << "You like WHITE color" << endl; break; default: cout << "Unknown" << endl; break; } system( "pause”); return 0; }

Các bạn có thể hiểu cấu trúc rẽ nhánh với switch case statement như sau: switch nhận vào 1 biến hoặc 1 biểu thức có giá trị kiểu số nguyên, mỗi nhãn case sẽ gắn kèm với 1 số nguyên cụ thể và chúng sẽ được lần lượt so sánh bằng (equality) với giá trị của biến (hoặc biểu thức) trong switch Néu nhan case nao co gia trị tương xứng với biến hoặc biểu thức trong switch, những câu lệnh đứng sau nhẫn đó sẽ được thực thi Nếu không có nhẫn nào có giá trị tương xứng, các câu lệnh đứng sau nhãn default sẽ được thực thi

Như vậy, chúng ta có thể đưa ra khuôn dạng của switch case statement như sau: switch ( <variable> ) { case this-value: //Code to execute if <variable> == this-value break; case that-value: Code to execute if <variable> == that-value break; đu cv 6 v6 6S 1 1 B1 1 V1 1 1o default:

//Code to execute if <variable> does not equal the value following any of the cases

break; }

Trang 3

một giá trị số nguyên (thường là một biến đơn), có thể là một biểu thức (ví dụ 3 * 2 + 5) Một hạn chế của switch statement là biểu thức điều kiện chỉ có thể thuộc 1 trong số các kiểu số nguyên (char, short, int, long, int32_t, enum, .)

case label dudc định nghĩa thông qua từ khóa case, theo sau từ khóa case là một hằng số, một giá trị cụ thể Lưu ý: Các nhãn case khác nhau phải được theo sau bởi các giá trị khác nhau Ví dụ: switch (x) { case 1: case 1: //illegal }

default label được định nghĩa thông qua từ khóa dđefault Những câu lệnh đứng sau nhãn này chỉ được thực thi nếu không có nhãn case nào có giá trị tương ứng với biểu thức điều kiện của switch Lưu ý: cấu trúc switch case có thể không cần sử dụng nhãn default

break là một từ khóa trong ngôn ngữ C/C++, khi sử dụng trong switch case statement sẽ khiến chương trình thoát ra khỏi khối lệnh của cấu trúc switch Chúng ta cần đặt từ khóa break tại cuối các câu lệnh của mỗi nhãn case để ngăn cách các case riêng biệt Chúng ta cùng nhìn vào ví dụ sau khi không sử dụng từ khóa break thì điêu gì sẽ xảy ra: switch (2) { case 1: // Does not match std::cout << 1 << '\n'; // skipped case 2: // Match! std::cout << 2 << '\n'; // Execution begins here case 3: std::cout << 3 << '\n'; // This is also executed case 4: std::cout << 4 << '\n'; // This is also executed default: std::cout << 5 << '\n'; // This is also executed } Với ví dụ này, kết quả in ra sẽ là: 2 3 4 5

Đây là kết quả ngoài ý muốn, trường hợp này được gọi là fall-

Trang 4

break; case 4: std::cout << 4 << '\n'; // This is also executed break; default: std::cout << 5 << '\n'; // This is also executed }

Khai báo và khởi tạo biến trong case statement

Chúng ta có thể khai báo biến bên trong mỗi case statement, nhưng chúng ta không thể khởi tạo giá trị cho chúng switch (x) { case 1: int y; // declaration is allowed y = 4; // this is an assignment break; case 2: y = 5; // y was declared above, so we can use it here too break; case 3:

int z = 4; // illegal, you can't initialize new variables in the case statements break; default: std::cout << "default case" << std::endl; break; }

Nhưng chúng ta nên tránh khai báo biến bên trong case statement, nó sẽ khiến chương trình chúng ta khó đọc hơn Chúng ta có nhiều giải pháp thay thế dễ hiểu hơn, nếu có dịp mình sẽ hướng dẫn cho các bạn

Tổng kết

Vậy là chúng ta đã làm quen thêm một dạng cấu trúc rẽ nhánh có điêu kiện khác If statement được sử dụng khi muốn kiểm tra tính đúng sai của một hoặc một số mệnh đề Switch case statement được sử dụng khi muốn kiểm tra một giá trị số nguyên Đối với trường hợp số lượng biểu thức điêu kiện cần so sánh la quá nhiêu, chúng ta ưu tiên sử dụng switch case statement hon vi cu pháp rõ ràng hơn

Trang 5

Vao Biểu thức lénh | + Khong Taxi tìne 2 x————* =rgiátrin? P——n* lênhn Có Không HEL- [ Ra } Bài tập cơ bản

Viết chương trình nhập vào tháng, in ra tháng đó có bao nhiêu ngày Goi y: Nhập vào thang

e Néu là tháng 1, 3, 5, 7, 8, 10, 12 thì có 31 ngày «‹ Nếu là tháng 4, 6, 9, 11 thi có 30 ngày

« Nếu là tháng 2 thi có 28 ngày (vi chúng ta chua xet dén nam)

Lợi dụng trường hợp fall-through để tổ chức chương trình ngắn gọn hơn

Ngày đăng: 25/10/2017, 20:33

TỪ KHÓA LIÊN QUAN