Ở bài TOÁN TỬ TRONG C# chúng ta đã tìm hiểu về toán tử 3 ngôi (? :). Đó có thể xem là một cấu trúc rẽ nhánh đơn giản. Vậy “cấu trúc rẽ nhánh” là gì? Sử dụng chúng như thế nào? Bài học hôm nay sẽ giúp chúng ta trả lời những câu hỏi này - Cấu trúc rẽ nhánh If else trong C#.
Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về các phần:
Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề:
Xét 2 mệnh đề sau:
Các bạn để ý những chữ in đậm trong 2 mệnh đề trên. Cấu trúc Nếu. . . thì. . . hoặc Nếu. . . thì. . . ngược lại thì. . . được gọi là cấu trúc rẽ nhánh.
Trong hầu hết các ngôn ngữ lập trình đều có loại cấu trúc rẽ nhánh:
Cấu trúc rẽ nhánh If. . . else. . . còn có tên gọi khác là “câu lệnh điều kiện”.
Cú pháp:
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> trả về true thì thực hiện <Câu lệnh thực hiện> ngược lại thì không làm gì cả.
Ví dụ:
string K = "Kteam"; if (K == "Kteam") // Biểu thức điều kiện sử dụng toán tử == đề so sánh xem giá trị biến K có bằng “Kteam” hay không. Nếu bằng trả thì trả về true ngược lại thì trả về false. Console.WriteLine("Free Education"); // In ra màn hình chữ “Free Education” nếu biểu thức trên đúng.Kết quả khi chạy chương trình trên là:
Cú pháp:
If <Biểu thức điều kiện>
<Câu lệnh thực hiện 1>
else
<Câu lệnh thực hiện 2>
Ý nghĩa:
Nếu <Biểu thức điều kiện> trả về true thì thực hiện <Câu lệnh thực hiện 1> ngược lại thì thực hiện <Câu lệnh thực hiện 2>.
Ví dụ:
string K = "Kteam"; if (K == "Kteam") // Nếu giá trị K bằng “Kteam” thì Console.WriteLine("Free Education"); // In ra màn hình “Free Education” else // Ngược lại thì Console.WriteLine("Connecting to HowKteam. . ."); // In ra màn hình “Connecting to HowKteam. . .”Kết quả khi chạy chương trình trên là:
<Biểu thức điều kiện> có thể chứa nhiều biểu thức con bên trong và các biểu thức con liên kết với nhau bằng các toán tử quan hệ (toán tử quan hệ đã được trình bày trong bài TOÁN TỬ TRONG C#) nhưng tất cả phải trả về kiểu boolean (true hoặc false).
Nếu muốn thực hiện nhiều câu lệnh thì ta có thể nhóm chúng vào trong cặp ngoặc nhọn { }.
Ví dụ:
If <Biểu thức điều kiện> { <Câu lệnh thực hiện> }Hoặc
If <Biểu thức điều kiện> { <Câu lệnh thực hiện 1> } Else { <Câu lệnh thực hiện 2> }Lời khuyên là cho dù chỉ thực hiện 1 câu lệnh vẫn để trong cặp ngoặc nhọn { } để code rõ ràng, dễ đọc, dễ nâng cấp sữa chữa.
Trong câu lệnh có thể chứa một câu lệnh điều kiện con nữa. Bạn có thể vận dụng điều này để làm giải quyết những vấn đề phức tạp.
Ví dụ:
If <Biểu thức điều kiện 1> { If <Biểu thức điều kiện 2> { <Câu lệnh thực hiện 1> } else { <Câu lệnh thực hiện 2> } <Câu lệnh thực hiện 3> } Else { If <Biểu thức điều kiện 3> { <Câu lệnh thực hiện 4> } If <Biểu thức điều kiện 4> { <Câu lệnh thực hiện 5> } <Câu lệnh thực hiện 6> }Ngoài cấu trúc If. . . else. . . cơ bản trên còn có cấu trúc nhỏ khác là If. . . else if. . . else. Ví dụ:I
If <Biểu thức điều kiện 1> { <Câu lệnh thực hiện 1> //Thực hiện khi <biểu thức điều kiện 1> đúng } ezlse if <Biểu thức điều kiện 2> { <Câu lệnh thực hiện 2> // Thực hiện khi <biểu thức điều kiện 1> sai và <biểu thức điều kiện 2> đúng } else { <Câu lệnh thực hiện 3> //Thực hiện khi cả 2 biểu thức điều kiện trên đều sai (các trường hợp còn lại) }So với toán tử 3 ngôi thì:
Ví dụ: Viết chương trình giải phương trình bậc 1: Ax + B = 0.
string strA, strB; int A, B; double Nghiem; Console.WriteLine(" ***************************************************"); Console.WriteLine(" * *"); Console.WriteLine(" * Chuong trinh giai phuong trinh Ax + B = 0 *"); Console.WriteLine(" * *"); Console.WriteLine(" ***************************************************"); Console.Write(" Moi nhap so A: "); strA = Console.ReadLine(); Console.Write(" Moi nhap so B: "); strB = Console.ReadLine(); if (int.TryParse(strA, out A) == false || int.TryParse(strB, out B) == false) // kiểm tra người dùng có thực sự nhập số nguyên vào hay không. Nếu ép kiểu thành công sẽ trả về true, ngược lại trả về false { Console.WriteLine(" Du lieu nhap sai !"); return; // Lệnh này tạm hiểu là dừng và thoát chương trình mà không thực hiện những câu lệnh sau nó nữa. Sẽ được tìm hiểu chi tiết trong bài 16 Hàm } else { Console.WriteLine("n Phuong trinh cua ban vua nhap la: {0}x + {1} = 0", A, B); if (A == 0) { Console.WriteLine("n Phuong trinh co vo so nghiem !"); } else if (B == 0) { Console.WriteLine("n Phuong trinh co nghiem x = 0"); } else { Nghiem = (double)-B / A; // Ép kiểu để cho ra kết quả chính xác Console.WriteLine("n Phuong trinh co nghiem x = {0}", Nghiem); } }Trong ví dụ mình đã sử dụng cả 2 dạng câu lệnh điều kiện là:
Kết quả khi chạy chương trình trên là:
- Nếu tuổi người đó < 16 thì hiện thông báo theo format: Bạn <Tuổi>, tuổi vị thành niên.
- Nếu tuổi người đó >= 16 và <18 thì hiện thông báo theo format: Bạn <Tuổi>, tuổi trưởng thành.
Nếu tuổi người đó >= 18 thì hiện thông báo theo format: Bạn <Tuổi>, già rồi.
Hãy khoe thành quả của bạn vào fanpage hoặc phần bình luận nhé!
Nội dung bài này giúp các bạn nắm được:
Bài học sau chúng ta sẽ cùng tìm hiểu một khái niệm tiếp theo đó là CẤU TRÚC RẼ NHÀNH SWITCH - CASE TRONG C#.
Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập - Thử thách - Không ngại khó”.
Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.
Link nội dung: https://ohanapreschool.edu.vn/cau-truc-re-nhanh-la-gi-a50560.html