Câu lệnh điều kiện if else: dạy chương trình biết ra quyết định

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

Một chương trình chỉ chạy thẳng từ trên xuống dưới thì khá nhàm chán. Sức mạnh thật sự đến khi nó biết chọn: nếu mật khẩu đúng thì cho vào, nếu sai thì báo lỗi. Công cụ để làm điều đó là câu lệnh điều kiện.

Cấu trúc if cơ bản

Câu lệnh if kiểm tra một biểu thức. Nếu kết quả là đúng (True), khối lệnh bên trong được chạy; nếu sai, nó bị bỏ qua. Ví dụ Python:

diem = 7.5
if diem >= 5:
    print("Bạn đã qua môn")

Python dùng thụt đầu dòng để xác định khối lệnh, còn JavaScript, Java, C dùng cặp ngoặc nhọn:

let diem = 7.5;
if (diem >= 5) {
  console.log("Bạn đã qua môn");
}

else và else if

Khi muốn xử lý cả trường hợp ngược lại, thêm else. Khi có nhiều mức, dùng thêm elif (Python) hoặc else if (các ngôn ngữ khác):

diem = 7.5
if diem >= 8.5:
    xep_loai = "Giỏi"
elif diem >= 6.5:
    xep_loai = "Khá"
elif diem >= 5:
    xep_loai = "Trung bình"
else:
    xep_loai = "Yếu"
print(xep_loai)   # Khá

Máy tính kiểm tra từ trên xuống và dừng ở nhánh đúng đầu tiên. Vì thế thứ tự các điều kiện rất quan trọng: nếu bạn đặt diem >= 5 lên đầu thì mọi điểm từ 5 trở lên đều thành "Trung bình".

Toán tử so sánh

Điều kiện thường được tạo từ các phép so sánh, kết quả luôn là đúng hoặc sai:

  • == bằng, != khác
  • > lớn hơn, < nhỏ hơn
  • >= lớn hơn hoặc bằng, <= nhỏ hơn hoặc bằng

Lỗi rất phổ biến là viết = (gán) thay cho == (so sánh). Trong Python, viết sai như vậy sẽ báo lỗi cú pháp, nhưng trong C nó vẫn chạy và cho kết quả khó hiểu.

Kết hợp điều kiện với and, or, not

Bạn có thể ghép nhiều điều kiện bằng toán tử logic:

tuoi = 20
co_the = True
if tuoi >= 18 and co_the:
    print("Được đăng ký")
if not co_the or tuoi < 18:
    print("Không được đăng ký")
  • and: đúng khi cả hai vế cùng đúng.
  • or: đúng khi ít nhất một vế đúng.
  • not: đảo ngược đúng thành sai và ngược lại.

Trong JavaScript và C, các toán tử này viết là &&, || và !.

Điều kiện lồng nhau và cách viết gọn

Bạn có thể đặt if bên trong if, nhưng lồng quá sâu làm code khó đọc. Một mẹo hay là dùng "kiểm tra sớm" (early return) trong hàm:

def dang_ky(tuoi, da_dong_y):
    if tuoi < 18:
        return "Chưa đủ tuổi"
    if not da_dong_y:
        return "Cần đồng ý điều khoản"
    return "Đăng ký thành công"

Cách viết này tránh nhiều tầng lồng nhau, mỗi điều kiện loại trừ một trường hợp lỗi và phần chính của hàm nằm ở cuối.

Bài tập nhỏ để luyện

  1. Nhập một số, in ra "chẵn" hay "lẻ" (gợi ý: phép chia lấy dư %).
  2. Nhập ba số, in ra số lớn nhất.
  3. Kiểm tra một năm có phải năm nhuận không: chia hết cho 4 nhưng không chia hết cho 100, hoặc chia hết cho 400.
  4. Tính tiền điện theo bậc thang với vài mức giá tự đặt.

Ví dụ thực tế: kiểm tra mật khẩu

Hãy kết hợp mọi thứ ở trên vào một hàm kiểm tra độ mạnh mật khẩu đơn giản:

def danh_gia_mat_khau(mk):
    if len(mk) < 8:
        return "Quá ngắn"
    co_so = any(c.isdigit() for c in mk)
    co_hoa = any(c.isupper() for c in mk)
    if co_so and co_hoa:
        return "Mạnh"
    if co_so or co_hoa:
        return "Trung bình"
    return "Yếu"

print(danh_gia_mat_khau("abc"))          # Quá ngắn
print(danh_gia_mat_khau("abcdefgh"))     # Yếu
print(danh_gia_mat_khau("Abcdefg1"))     # Mạnh

Hàm dùng kiểm tra sớm cho trường hợp ngắn, sau đó kết hợp điều kiện bằng and và or. Đây chỉ là ví dụ học tập; hệ thống thật cần quy tắc kỹ hơn. Hãy thử mở rộng bằng cách yêu cầu thêm ký tự đặc biệt.

Lỗi thường gặp với điều kiện

  1. Dùng = thay cho == trong điều kiện.
  2. Thụt đầu dòng sai trong Python hoặc quên ngoặc nhọn trong C và JavaScript.
  3. Sắp xếp các nhánh elif sai thứ tự nên nhánh hẹp không bao giờ được chạy.
  4. So sánh số thực bằng ==; hãy dùng sai số cho phép.

Kết luận

Câu lệnh điều kiện là cách đầu tiên để chương trình "suy nghĩ". Hãy luyện đến khi bạn đọc một đoạn if else và hình dung ngay các luồng chạy khác nhau. Tiếp theo, kết hợp với vòng lặp, bạn có thể giải được một lượng lớn bài toán thực tế.

Bạn có thể tiếp tục hành trình với những khóa học lập trình trên codebem.com, học theo tốc độ của riêng mình.

author_photo
Nguyễn Đình Cường

0 comment