CodeGym /Các khóa học /C# SELF /Câu lệnh điều kiện: if else

Câu lệnh điều kiện: if else

C# SELF
Mức độ , Bài học
Có sẵn

1. Toán tử if else

Chương trình sẽ chẳng có ích gì nếu nó luôn làm một việc giống nhau, bất kể hoàn cảnh bên ngoài thay đổi ra sao. Chương trình cần biết thích nghi với các tình huống khác nhau và làm việc này trong trường hợp này, việc khác trong trường hợp khác.

Trong C#, điều này được thực hiện bằng toán tử điều kiện — một từ khóa đặc biệt cho phép thực hiện các khối lệnh khác nhau tùy vào điều kiện đúng hay sai.

Câu lệnh điều kiện gồm ba phần: điều kiện, lệnh 1lệnh 2. Nếu điều kiện đúng (true), thì lệnh 1 sẽ chạy, còn nếu không thì lệnh 2 sẽ chạy. Hai lệnh này không bao giờ chạy cùng lúc. Cú pháp tổng quát như sau:

if (điều kiện)
   lệnh1;
else
   lệnh2;
Toán tử điều kiện if-else

if nghĩa là "nếu", còn else là "nếu không". Nói kiểu đời thường thì như này:

Nếu điều kiện đúng, thì
   thực hiện lệnh1;
nếu không
   thực hiện lệnh2;
Toán tử điều kiện if-else kiểu đời thường

Ví dụ:

//Trên màn hình sẽ hiện: Bạn vẫn còn là trẻ con

int age = 17;
if (age < 18)
   Console.WriteLine("Bạn vẫn còn là trẻ con");
else
   Console.WriteLine("Bạn đã là người lớn rồi");
//Trên màn hình sẽ hiện: Ấm áp

int temperature = 5;
if (temperature < 0)
   Console.WriteLine("Ngoài trời lạnh cóng");
else
   Console.WriteLine("Ấm áp");
//Trên màn hình sẽ hiện: Có thể thi bằng lái

int age = 18;
if (age == 18)
   Console.WriteLine("Có thể thi bằng lái");
else
   Console.WriteLine("Có thể tiết kiệm mua xe");

2. Khối lệnh

Nếu khi điều kiện đúng (hoặc sai) bạn muốn chương trình thực hiện nhiều lệnh, bạn có thể gom chúng vào một khối lệnh.

Để gom các lệnh vào một khối, hãy "bọc" chúng trong dấu ngoặc nhọn. Nhìn chung sẽ như này:

{
   lệnh1;
   lệnh2;
   lệnh3;
}

Khối có thể có bao nhiêu lệnh cũng được. Thậm chí là không có lệnh nào.

Ví dụ kết hợp toán tử if-else và khối lệnh:

//Trên màn hình sẽ hiện: Bạn vẫn còn là trẻ con. Đừng cãi người lớn

int age = 17;
if (age < 18)
{
   Console.WriteLine("Bạn vẫn còn là trẻ con");
   Console.WriteLine("Đừng cãi người lớn");
}
else
{
   Console.WriteLine("Bạn đã là người lớn rồi");
   Console.WriteLine("Giới trẻ bây giờ ghê thật");
}
//Trên màn hình sẽ hiện: Ấm áp

int temperature = 5;
if (temperature < 0)
{
   Console.WriteLine("Ngoài trời lạnh cóng");
   Console.WriteLine("Đội mũ vào đi");
}
else
   Console.WriteLine("Ấm áp");
//Sẽ thực hiện khối lệnh rỗng. Không có gì hiện ra màn hình. 

int age = 21;
if (age == 18)
   Console.WriteLine("Đến văn phòng quân sự");
else
{
}

3. Cú pháp rút gọn của toán tử if

Nếu không có code trong khối else, bạn có thể bỏ qua nó. Khi đó toán tử if sẽ như sau:

if (điều kiện)
   lệnh1;
Toán tử điều kiện if

Ví dụ:

int age = 19;
if (age >= 18)
{
    Console.WriteLine("Bạn đã đủ tuổi trưởng thành!");
}

Nó hoạt động thế nào?

Nếu điều kiện đúng, khối code sẽ chạy. Nếu sai thì không có gì xảy ra — chương trình tiếp tục chạy tiếp.

Khối else vẫn có thể có trong chương trình, nhưng nó rỗng (giữa hai dấu ngoặc nhọn không có lệnh nào). Bạn có thể bỏ luôn: chương trình cũng không khác gì cả.

4. Kết hợp điều kiện: else if

Đôi khi bạn cần kiểm tra không chỉ "có/không", mà còn chọn giữa nhiều trường hợp. Lúc này, else if sẽ giúp bạn:

if (điều kiện1)
{
    // Thực hiện nếu điều kiện1 đúng
}
else if (điều kiện2)
{
    // Thực hiện nếu điều kiện2 đúng, còn điều kiện1 thì sai
}
else
{
    // Thực hiện nếu không có điều kiện nào ở trên đúng
}

Ví dụ:

int hour = 13;
if (hour < 12)
{
    Console.WriteLine("Chào buổi sáng!");
}
else if (hour < 18)
{
    Console.WriteLine("Chào buổi chiều!");
}
else
{
    Console.WriteLine("Chào buổi tối!");
}

Ở đây có gì?

  • Nếu giờ nhỏ hơn 12 — buổi sáng.
  • Nếu từ 12 đến 18 — buổi chiều.
  • Nếu lớn hơn — buổi tối.
  • Chương trình chỉ chọn MỘT trường hợp thôi! Khi điều kiện nào đúng thì các điều kiện sau không kiểm tra nữa.

5. Minh họa sơ đồ: sơ đồ nhánh

Nhìn sơ đồ nhánh sẽ như này:

Còn nếu có nhiều điều kiện:

Nhìn rất giống mấy ngã rẽ trong game nhập vai: rẽ trái thì một kiểu, rẽ phải thì kiểu khác, đi thẳng thì lại khác nữa!

6. Có thể kiểm tra điều kiện gì?

Bên trong dấu ngoặc tròn sau if phải là BIỂU THỨC LOGIC — kết quả là true hoặc false.

Các toán tử so sánh cơ bản:

Toán tử Ý nghĩa Ví dụ
== Bằng x == 5
!= Không bằng x != 10
> Lớn hơn x > 0
< Nhỏ hơn age < 18
>= Lớn hơn hoặc bằng score >= 100
<= Nhỏ hơn hoặc bằng count <= 50

Ví dụ điều kiện:

if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)

Lưu ý: = (một dấu) — là gán giá trị. == (hai dấu) — là so sánh. Đây là một trong những lỗi phổ biến nhất của newbie! Nếu bạn lỡ viết:

if (x = 5) // LỖI!

— compiler sẽ báo lỗi cho bạn, và như vậy là đúng lắm luôn.

7. Làm việc với chuỗi trong điều kiện

Bạn có thể so sánh không chỉ số mà cả chuỗi nữa:

string password = Console.ReadLine();
if (password == "qwerty")
{
    Console.WriteLine("Bạn đã đăng nhập!");
}

Chú ý: so sánh chuỗi bằng == trong C# hoạt động chuẩn cho các trường hợp thông thường, vì nó so sánh nội dung chuỗi (không chỉ so sánh tham chiếu object). Chi tiết về so sánh chuỗi sẽ nói kỹ hơn khi học về string methods và localization.

8. Một số lưu ý và mẹo:

Dấu ngoặc nhọn: cần hay không?

Nếu sau if hoặc else chỉ có một lệnh, bạn có thể bỏ ngoặc nhọn:

if (age > 18)
    Console.WriteLine("Bạn trên 18 tuổi!");

// Nhưng an toàn hơn là LUÔN dùng ngoặc nhọn:
if (age > 18)
{
    Console.WriteLine("Bạn trên 18 tuổi!");
}

Mẹo nhỏ: luôn viết có ngoặc nhọn. Như vậy sẽ tránh được nhiều lỗi, nhất là khi code dài ra.

Lỗi logic: cẩn thận với điều kiện!

Nếu bạn viết như này:

if (age > 18)
    Console.WriteLine("Bạn trên 18 tuổi!");
    Console.WriteLine("Chào mừng!");

Thì compiler sẽ hiểu như này:

if (age > 18)
{
    Console.WriteLine("Bạn trên 18 tuổi!");
}

Console.WriteLine("Chào mừng!");

Dòng thứ hai luôn luôn chạy — cần ngoặc nhọn để cả hai dòng nằm trong "nhánh" điều kiện.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION