Skip to content

🧭 5.3 if – elif – else

📖 Giới thiệu

Khi có nhiều điều kiện cần kiểm tra, ta sử dụng elif (else if). Đây là cách để kiểm tra nhiều trường hợp khác nhau một cách có thứ tự.

Mục tiêu bài học:

  • Hiểu cách sử dụng elif để kiểm tra nhiều điều kiện
  • Biết thứ tự kiểm tra điều kiện
  • Viết chương trình phân loại dựa trên nhiều tiêu chí

🔧 Cú pháp

Cú pháp cơ bản:

python
if điều_kiện_1:
    # Code khi điều kiện 1 đúng
elif điều_kiện_2:
    # Code khi điều kiện 2 đúng
elif điều_kiện_3:
    # Code khi điều kiện 3 đúng
else:
    # Code khi tất cả điều kiện đều sai

Ví dụ đơn giản:

python
diem = int(input("Nhập điểm: "))

if diem >= 8:
    print("Giỏi")
elif diem >= 6:
    print("Khá")
elif diem >= 4:
    print("Trung bình")
else:
    print("Yếu")

🔬 Phân tích & Giải thích chi tiết

1. 🔄 Thứ tự kiểm tra điều kiện

Quan trọng: Python kiểm tra điều kiện từ trên xuống dưới và dừng ngay khi tìm thấy điều kiện đúng đầu tiên.

python
# Ví dụ về thứ tự kiểm tra
so = 15

if so > 10:
    print("Lớn hơn 10")    # ✅ In ra cái này
elif so > 5:
    print("Lớn hơn 5")     # ❌ Không chạy dù đúng
elif so > 0:
    print("Lớn hơn 0")     # ❌ Không chạy dù đúng

2. 🎯 Phân loại điểm số

python
# Phân loại học lực
diem = float(input("Nhập điểm: "))

if diem >= 9:
    hoc_luc = "Xuất sắc"
elif diem >= 8:
    hoc_luc = "Giỏi"
elif diem >= 6.5:
    hoc_luc = "Khá"
elif diem >= 5:
    hoc_luc = "Trung bình"
elif diem >= 3.5:
    hoc_luc = "Yếu"
else:
    hoc_luc = "Kém"

print(f"Học lực: {hoc_luc}")

3. 🗓️ Xác định tên ngày trong tuần

python
# Xác định ngày trong tuần
thu = int(input("Nhập số thứ (2-8): "))

if thu == 2:
    ngay = "Thứ Hai"
elif thu == 3:
    ngay = "Thứ Ba" 
elif thu == 4:
    ngay = "Thứ Tư"
elif thu == 5:
    ngay = "Thứ Năm"
elif thu == 6:
    ngay = "Thứ Sáu"
elif thu == 7:
    ngay = "Thứ Bảy"
elif thu == 8:
    ngay = "Chủ Nhật"
else:
    ngay = "Không hợp lệ"

print(f"Hôm nay là: {ngay}")

💻 Ví dụ minh họa

Ví dụ 1: Phân loại BMI

python
# phan_loai_bmi.py
print("📏 PHÂN LOẠI BMI")
print("=" * 20)

# Nhập thông tin
can_nang = float(input("Cân nặng (kg): "))
chieu_cao = float(input("Chiều cao (m): "))

# Tính BMI
bmi = can_nang / (chieu_cao * chieu_cao)

# Phân loại BMI
if bmi < 18.5:
    phan_loai = "Thiếu cân"
    loi_khuyen = "Nên tăng cân"
elif bmi < 23:
    phan_loai = "Bình thường"
    loi_khuyen = "Duy trì cân nặng"
elif bmi < 25:
    phan_loai = "Thừa cân"
    loi_khuyen = "Nên giảm cân nhẹ"
else:
    phan_loai = "Béo phì"
    loi_khuyen = "Cần giảm cân"

# Hiển thị kết quả
print(f"\n📊 KẾT QUẢ:")
print(f"BMI: {bmi:.1f}")
print(f"Phân loại: {phan_loai}")
print(f"Lời khuyên: {loi_khuyen}")

Ví dụ 2: Máy tính đơn giản

python
# may_tinh_don_gian.py
print("🧮 MÁY TÍNH ĐƠN GIẢN")
print("=" * 25)

# Nhập số
so_thu_nhat = float(input("Số thứ nhất: "))
so_thu_hai = float(input("Số thứ hai: "))
phep_toan = input("Phép toán (+, -, *, /): ")

# Thực hiện phép tính
if phep_toan == "+":
    ket_qua = so_thu_nhat + so_thu_hai
    ten_phep = "cộng"
elif phep_toan == "-":
    ket_qua = so_thu_nhat - so_thu_hai
    ten_phep = "trừ"
elif phep_toan == "*":
    ket_qua = so_thu_nhat * so_thu_hai
    ten_phep = "nhân"
elif phep_toan == "/":
    if so_thu_hai != 0:
        ket_qua = so_thu_nhat / so_thu_hai
        ten_phep = "chia"
    else:
        print("❌ Lỗi: Không thể chia cho 0!")
        ten_phep = None
else:
    print("❌ Phép toán không hợp lệ!")
    ten_phep = None

# Hiển thị kết quả
if ten_phep:
    print(f"\n📊 KẾT QUẢ:")
    print(f"{so_thu_nhat} {phep_toan} {so_thu_hai} = {ket_qua}")

🏋️ Thực hành

Bài tập 1: Phân loại tuổi

Nhiệm vụ: Phân loại độ tuổi

python
# Phân loại: Trẻ em (< 13), Thiếu niên (13-17), 
# Thanh niên (18-30), Trung niên (31-60), Cao tuổi (> 60)
tuoi = int(input("Nhập tuổi: "))

if tuoi < 13:
    print("Trẻ em")
elif tuoi <= 17:
    print("Thiếu niên")
elif tuoi <= 30:
    print("Thanh niên")
elif tuoi <= 60:
    print("Trung niên")
else:
    print("Cao tuổi")

Bài tập 2: Xác định mùa

Nhiệm vụ: Xác định mùa dựa trên tháng

python
# Tháng 12,1,2: Mùa đông
# Tháng 3,4,5: Mùa xuân  
# Tháng 6,7,8: Mùa hè
# Tháng 9,10,11: Mùa thu
thang = int(input("Nhập tháng (1-12): "))

if thang in [12, 1, 2]:
    print("Mùa đông")
elif thang in [3, 4, 5]:
    print("Mùa xuân")
elif thang in [6, 7, 8]:
    print("Mùa hè")
elif thang in [9, 10, 11]:
    print("Mùa thu")
else:
    print("Tháng không hợp lệ")

Bài tập 3: Tính giá vé xem phim

Nhiệm vụ: Tính giá vé theo độ tuổi và ngày

python
# Trẻ em (<12): 50k, Học sinh (12-18): 70k
# Người lớn (19-60): 100k, Cao tuổi (>60): 60k
# Cuối tuần tăng 20k
tuoi = int(input("Tuổi: "))
ngay = input("Ngày (T2-CN): ")

# Xác định giá cơ bản
if tuoi < 12:
    gia = 50000
elif tuoi <= 18:
    gia = 70000
elif tuoi <= 60:
    gia = 100000
else:
    gia = 60000

# Tăng giá cuối tuần
if ngay in ["T7", "CN"]:
    gia += 20000

print(f"Giá vé: {gia:,} VND")

📋 Tóm tắt

Cú pháp if-elif-else:

python
if điều_kiện_1:
    # Khối 1
elif điều_kiện_2:
    # Khối 2  
elif điều_kiện_3:
    # Khối 3
else:
    # Khối mặc định

Quy tắc quan trọng:

  1. 🔄 Thứ tự: Python kiểm tra từ trên xuống dưới
  2. 🚪 Dừng sớm: Chỉ thực hiện khối đầu tiên có điều kiện đúng
  3. 🎯 else: Tùy chọn, chạy khi tất cả điều kiện sai
  4. 📝 Thụt lề: Phải thụt lề đồng nhất trong mỗi khối

So sánh với if đơn giản:

if đơnif-elif-else
Kiểm tra tất cả điều kiệnDừng ở điều kiện đúng đầu tiên
Có thể thực hiện nhiều khốiChỉ thực hiện 1 khối
Phù hợp kiểm tra độc lậpPhù hợp phân loại

Chuẩn bị cho bài tiếp theo:

Bài tiếp theo sẽ học về 🔐 Toán tử logic (and, or, not) - cách kết hợp nhiều điều kiện!


💡 Mẹo: Sắp xếp điều kiện từ cụ thể đến chung chung để tránh lỗi logic!

🧭 Thực hành: Thử thay đổi thứ tự điều kiện để hiểu sự khác biệt!

🐍 Khóa học Python căn bản bằng tiếng Việt