Cấu trúc rẽ nhánh if else trong C#
Nguyễn Dương 07-06-2024Bạn nào từng học qua Pascal chắc còn nhớ câu lệnh if.....then và if.....then......else đúng không. Đây là cấu trúc rẽ nhánh mà hầu hết các ngôn ngữ lập trình đều có.
1. CẤU TRÚC RẼ NHÁNH LÀ GÌ
Xét 3 ví dụ sau
Ví dụ 1: Nếu ngày mai trời mưa thì ở nhà
Ví dụ 2: Nếu ngày mai trời mưa thì ở nhà ngược lại thì đi chơi
Ví dụ 3:
Bạn có thể nhìn ví dụ về lưu đồ cấu trúc rẽ nhánh dưới đây để dễ hình dung hơn:
Đây là lưu đồ biểu diễn thuật toán giải phương trình bậc 2, sử dụng cấu trúc rẽ nhánh. Theo chiều mũi tên từ trên xuống dưới thì lưu đồ phải rẽ nhánh sang trái 2 lần cho 2 trường hợp vô nghiệm (Deltta < 0) và nghiệm kép (Delta = 0).
Ví dụ 1: Nếu ngày mai trời mưa thì ở nhà
Ví dụ 2: Nếu ngày mai trời mưa thì ở nhà ngược lại thì đi chơi
Ví dụ 3:
- Nếu điểm tổng kết trung bình lớn hơn hoặc bằng 8.0 thì xếp loại học sinh giỏi
- Nếu điểm tổng kết trung bình lớn hơn hoặc bằng 6.5 thì xếp loại học sinh tiên tiến
- Nếu điểm tổng kết trung bình lớn hơn hoặc bằng 5.0 thì xếp loại học sinh trung bình
- Còn lại bị ở lại lớp
Bạn có thể nhìn ví dụ về lưu đồ cấu trúc rẽ nhánh dưới đây để dễ hình dung hơn:
Đây là lưu đồ biểu diễn thuật toán giải phương trình bậc 2, sử dụng cấu trúc rẽ nhánh. Theo chiều mũi tên từ trên xuống dưới thì lưu đồ phải rẽ nhánh sang trái 2 lần cho 2 trường hợp vô nghiệm (Deltta < 0) và nghiệm kép (Delta = 0).
2. CẤU TRÚC IF - ELSE TRONG C#
2.1: Dạng thiếu
Cú pháp:
Ý nghĩa: Nếu biểu thức điều kiện là đúng thì thực hiện câu lệnh. Ngược lại không làm gì cả.
Ví dụ:
Nếu chỉ có 1 câu lệnh thì không bắt buộc phải sử dụng ngoặc nhọn {...}
Nếu thực hiện nhiều câu lệnh thì bạn phải đặt các câu lệnh đó trong khối ngoặc nhọn {...}
If (Biểu thức điều kiện) <Câu lệnh thực hiện>
Ý nghĩa: Nếu biểu thức điều kiện là đúng thì thực hiện câu lệnh. Ngược lại không làm gì cả.
Ví dụ:
int a = 5, b = 3; if (a > b) Console.WriteLine("So a lon hon so b");
Nếu chỉ có 1 câu lệnh thì không bắt buộc phải sử dụng ngoặc nhọn {...}
Nếu thực hiện nhiều câu lệnh thì bạn phải đặt các câu lệnh đó trong khối ngoặc nhọn {...}
2.2: Dạng đủ
Cú pháp:
if (Biểu thức điều kiện) { Câu lệnh 1 Câu lệnh 2 Câu lệnh ..... Câu lệnh n } else { Câu lệnh 1' Câu lệnh 2' Câu lệnh ..... Câu lệnh n' }
Ý nghĩa: Nếu biểu thức điều kiện đúng thì thực hiện các câu lệnh từ 1 đến n. Nếu biểu thức điều kiện sai thì thực hiện các câu lệnh từ 1' đến n'.
Ví dụ:
int a = 5, b = 6; if (a > b) Console.WriteLine("So a lon hon so b"); else Console.WriteLine("So a nho hon so b");
2.3: Cấu trúc if else lồng nhau
Để giải quyết các bài toán phức tạp, chia thành nhiều trường hợp thì bạn có thể sử dụng cấu trúc if else lồng nhau. Bên trong 1 câu lệnh if else có thể chứa câu lệnh if else khác.
Quay lại ví dụ 3 ở đầu bài viết, bạn có thể thấy đề bài sẽ chia làm 4 trường hợp. Vì vậy phải dùng cấu trúc if else lồng nhau để giải quyết bài toán.
Quay lại ví dụ 3 ở đầu bài viết, bạn có thể thấy đề bài sẽ chia làm 4 trường hợp. Vì vậy phải dùng cấu trúc if else lồng nhau để giải quyết bài toán.
float DiemTrungBinh; Console.Write("Nhap diem tong ket trung binh nam: "); DiemTrungBinh = float.Parse(Console.ReadLine()); if (DiemTrungBinh >= 8.0) { Console.WriteLine("Xep loai hoc sinh gioi"); } else { if (DiemTrungBinh >= 6.5) { Console.WriteLine("Xep loai hoc sinh tien tien"); } else { if (DiemTrungBinh >= 5.0) { Console.WriteLine("Xep loai hoc sinh trung binh"); } else { Console.WriteLine("Bi o lai lop"); } } }
3. LƯU Ý KHI SỬ DỤNG IF ELSE TRONG C#
- Cho dù chỉ thực hiện 1 câu lệnh thì bạn vẫn nên để nó nằm trong cặp ngoặc nhọn { } cho dễ nhìn, dễ đọc.
- Nên gõ ngoặc nhọn trước rồi gõ các câu lệnh bên trong.
- So với toán tử 3 ngôi thì câu lệnh điều kiện nhìn trực quan hơn và thực hiện được nhiều câu lệnh hơn. Nhưng nếu chỉ thực hiện 1 câu lệnh điều kiện đơn giản thì dùng toán tử 3 ngôi sẽ làm cho code ngắn gọn hơn.
- Nên gõ ngoặc nhọn trước rồi gõ các câu lệnh bên trong.
- So với toán tử 3 ngôi thì câu lệnh điều kiện nhìn trực quan hơn và thực hiện được nhiều câu lệnh hơn. Nhưng nếu chỉ thực hiện 1 câu lệnh điều kiện đơn giản thì dùng toán tử 3 ngôi sẽ làm cho code ngắn gọn hơn.
Bài viết liên quan
Hàm đệ quy trong C#
enum trong C#
Struct trong C#
Lớp String trong C#
Vòng lặp foreach trong C#
Mảng đa chiều, mảng của mảng trong C#