Cấu Trúc Rẽ Nhánh Switch Case Trong C | Lập Trình Từ Đầu
Có thể bạn quan tâm
1.1 Trường hợp trong cuộc sống
Trong cuộc sống, ta sẽ bắt gặp nhiều trường hợp mà ta cần phải chọn và kiểm tra các trường hợp đó. Ví dụ như ta có một bảng điểm trung bình môn học, ta có thể phân ra các trường hợp sau:
TH1: Điểm 5 sẽ là danh hiệu học sinh trung bình
Th2: Điểm 7 sẽ là danh hiệu học sinh khá
TH3: Điểm 9 sẽ là danh hiệu học sinh giỏi
1.2 Các trường hợp trong ngôn ngữ C
Trong ngôn ngữ C cũng có một kiểu để xem xét và kiểm tra các trường hợp như ở trên, chúng được gọi là Switch…case ( cấu trúc rẽ nhánh).
Đầu vào sẽ là điều kiện cần kiểm tra và được đặt trong Switch và các trường hợp có thể sảy ra sẽ được đưa vào trong các case.
Nếu như đầu vào trùng với case nào đó thì sẽ thực hiện một khối lệnh được yêu cầu, giả sử đầu vào trong Switch không có trùng với bất kỳ case nào thì sẽ có một trường hợp gọi là default và các khối lệnh sẽ thực hiện ở đây.
2. Câu lệnh switch caseCú pháp cho một câu lệnh switch case trong ngôn ngữ lập trình C như sau:
switch(condition) { case 1 : CodeBlock1; break; case 2: CodeBlock2; break; case 3: CodeBlock3; break; case n: CodeBlockN; break; default: CodeBlockDefault; }Trong đó:
- Condition trong switch là đầu vào cần kiểm tra
- Case 1, case 2, case 3, case N: là các trường hợp có thể sảy ra
- CodeBlock1, CodeBlock2, CodeBlock3, CodeBlockN: là các khối lệnh thực hiện khi đầu vào Condition trùng với Case
- Break là câu lệnh kết thúc case khi thực hiện xong khối lệnh ở case
- Default: là trường hợp mà không có Case nào trùng với điều kiện đầu vào Condition
- CodeBlockDefault là trường hợp khối lệnh trong trường hợp Default
Chú ý: Câu lệnh breack ở đây nghĩa là khi thực hiện xong lệnh trong một khối lệnh trong case nào đó, sẽ lập tức dừng lại và không chuyển sang kiểm tra các case khác nữa.
Để hiểu rõ hơn về switch case chúng ta cùng đi vào ví dụ dưới đây:
Ví dụ này tôi sẽ lấy yêu cầu như ở phần 1.1 Trường hợp trong cuộc sống.
Tôi có một điểm do người dùng nhập từ bàn phím vào và tôi cần kiểm tra các trường hợp điểm:
TH1: Điểm 5 sẽ là danh hiệu học sinh trung bình
Th2: Điểm 7 sẽ là danh hiệu học sinh khá
TH3: Điểm 9 sẽ là danh hiệu học sinh giỏi
Giả sử tôi khai báo biến điểm và để người dùng nhập điểm từ bàn phím vào và tôi sẽ sử dụng switch case như sau:
Khi tôi nhập điểm bằng 5, kết quả là:
#include <stdio.h> int main () { int diem; printf("Nhap vao diem: "); scanf("%d", &diem); switch(diem) { case 5 : printf("Hoc sinh trung binh" ); break; case 7 : printf("Hoc sinh kha" ); break; case 9 : printf("Hoc sinh gioi" ); break; default : printf("Chua xep loai duoc" ); } }Nhap vao diem: 5 Hoc sinh trung binh |
Khi nhập điểm bằng 7, kết quả là:
Nhap vao diem: 7 Hoc sinh kha |
Khi nhập điểm bằng 9, kết quả là:
Nhap vao diem: 9 Hoc sinh gioi |
Và trường hợp tôi nhập một điểm khác các số 5,7,9 thì sẽ rơi vào trường hợp default. Ví dụ tôi nhập vào điểm là số 11, khi đó kết quả là:
Nhap vao diem: 11 Chua xep loai duoc |
Như vậy ta có thể hiểu rõ hơn về switch case thông qua ví dụ trên: Nếu biến đầu vào trùng với giá trị của case nào thì khối lệnh sẽ được thực hiện ở trong case đó và sau khi thực hiện sẽ không chuyển sang kiểm tra ở các case tiếp theo do câu lệnh breack; làm kết thúc. Và trường hợp biến đầu vào không trùng với bất kỳ case nào thì default sẽ được thực hiện.
3. So sánh câu lệnh switch case và câu lệnh if elseĐiểm giống nhau cả 2 câu lệnh đều giải quết vấn đề từ một biến đầu vào và đi kiểm tra xem biến đó thuộc trường hợp gì và thực hiện khối lệnh gì. Cả 2 câu lệnh switch case và if else đều thuộc loại cấu trúc ra quyết định trong lập trình.
Điểm khác nhau đối với switch case sẽ có cấu trúc rõ ràng, mạch lạc hơn, dễ hiểu hơn so với if else.
Trong khi đó if else lại viết ngắn ngọn hơn và if else kiểm tra điều kiện rồi thực thi một trường hợp nào đó (hay khối lệnh nào đó). Switch case lại kiểm tra đầu vào và thực hiện nhiều trường hợp khác nhau trong các case.
Tuy nhiên, vẫn tùy vào trường hợp và vấn đề mà ta áp dụng if else hay switch case cho phù hợp. Bài toán đưa ra nhiều điều kiện ta sẽ ưu tiên sử dụng switch case, ngược lại thì ta ưu tiên dùng if else cho ngắn ngọn.
Từ khóa » Switch Trong C Là Gì
-
Lệnh Switch Trong C++ - Hoclaptrinh
-
Mệnh đề Switch Trong C - Học Lập Trình C Online - VietTuts
-
Lệnh Switch Case Trong C - Freetuts
-
Cấu Trúc Lệnh Switch Case Trong C++ (có Bài Tập Thực Hành) - Freetuts
-
Câu điều Kiện Switch Trong C++ (Switch Statements) | How Kteam
-
Câu Lệnh Switch – Wikipedia Tiếng Việt
-
C Cơ Bản: Câu Lệnh Switch Case - DevIOT
-
Lệnh Switch Case Trong C/C++
-
Lệnh Switch · Lập Trình C++
-
[Wiki] Lệnh Switch Trong C++ - Programming - Dạy Nhau Học
-
Switch Case Trong C
-
Bài 22. Lệnh Switch Case Trong C
-
Cấu Trúc Rẽ Nhánh Switch ... Case Trong Ngôn Ngữ C++ - STDIO
-
Câu Lệnh Switch Case Trong C | Codelearn