18 tháng 3, 2020

Cấu trúc rẽ nhánh if else trong C#

Bạn nào từng học qua Pascal chắc còn nhớ câu lệnh if.....thenif.....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ó.

if else trong C#

1. Cấu trúc rẽ nhánh là gì

Xét 3 ví dụ sau

Ví dụ 1Nế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
Qua 3 ví dụ trên ta có thể thấy cấu trúc rẽ nhánh là cấu trúc chia bài toán thành nhiều trường hợp, rơi vào trường hợp nào thì thực hiện thao tác tương ứng với trường hợ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:


if else trong C#

Đâ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: 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.
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.

SHARE THIS

Blogger Nguyễn Dương

Có một câu nói mà mình rất thích đó là "Thật sai lầm khi nghĩ rằng một khi rời khỏi trường học, bạn không cần học thêm điều mới nữa". Chính vì thế mà hãy luôn luôn học hỏi, con người chỉ ngừng phát triển khi ngừng học hỏi. Nếu như bạn chưa hiểu nội dung bài viết hoặc đang khúc mắc khi thao tác thì hãy bình luận phía dưới bài viết để mọi người cùng thảo luận nhé!