📚 Khi nào dùng?
- Khi cần kiểm tra hai (hoặc nhiều) điều kiện phụ thuộc nhau.
- Ví dụ: mục tiêu phần thưởng chuyển đổi theo điểm Toán và điểm Văn.
🔧 Cú pháp cơ bản
if (điều_kiện1) {
// Khối 1: chạy khi điều_kiện1 đúng
if (điều_kiện2) {
// Khối 2: cả điều_kiện1 và điều_kiện2 đều đúng
} else {
// Khối 3: điều_kiện1 đúng nhưng điều_kiện2 sai
}
} else {
// Khối 4: điều_kiện1 sai
}
- Dùng dấu ngoặc
{}
bao quanh từng khối. else
luôn gắn vớiif
gần nhất chưa cóelse
.
🎯 Ví dụ 1: Phân loại học lực
#include <iostream>
using namespace std;
int main() {
double toan, van;
cout << "Nhập điểm Toán: "; cin >> toan;
cout << "Nhập điểm Văn: "; cin >> van;
if (toan >= 8.0) {
// Toán giỏi
if (van >= 8.0) {
cout << "Học lực xuất sắc\n";
} else {
cout << "Toán giỏi, Văn cần cố gắng\n";
}
} else {
// Toán không giỏi
if (toan >= 5.0) {
cout << "Toán trung bình\n";
} else {
cout << "Toán yếu, cần học lại\n";
}
}
return 0;
}
Giải thích
- Kiểm tra Toán ≥8.0: nếu đúng → vào khối 1.
- Trong khối 1, kiểm tra Văn ≥8.0 để phân tiếp.
- Nếu Toán <8.0 → vào khối
else
ngoài, kiểm tiếp Toán ≥5.0.
🎯 Ví dụ 2: Kiểm tra tam giác
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cout << "Nhập 3 cạnh tam giác: ";
cin >> a >> b >> c;
// Kiểm tam giác hợp lệ
if (a + b > c && a + c > b && b + c > a) {
// Xếp loại
if (a == b && b == c) {
cout << "Tam giác đều\n";
} else if (a == b || b == c || a == c) {
cout << "Tam giác cân\n";
} else {
cout << "Tam giác thường\n";
}
} else {
cout << "Không phải tam giác\n";
}
return 0;
}
Giải thích
- Bước 1: Kiểm điều kiện tạo thành tam giác.
- Bước 2: Trong khối tam giác hợp lệ, lồng if-else if để phân loại đều, cân, thường.
💡 Lưu ý
- Luôndùng ngoặccho mỗi khối để tránh nhầm lẫn.
- Tránh lồng quá sâu (3–4 tầng) – nếu cần, tách hàm riêng.
- Dùnglogic rõ ràng, comment ngắn gọn giải thích ý đồ từng khối.
🛠️ Bài tập thực hành
Cơ bản
- Nhập số nguyên, nếu dương thì tiếp tục kiểm tra chẵn/lẻ, ngược lại in “Số âm”.
- Nhập tháng (1–12), nếu hợp lệ lồng thêm if kiểm mùa (Xuân, Hạ, Thu, Đông).
- Nhập năm, if lồng xâu kiểm năm nhuận theo quy tắc 4,100,400.
Trung bình
- Game đoán số: nhập số, if-else lồng nhau phân giai đoạn gần/xa, nóng/lạnh.
- Nhập giờ (0–23), if kiểm giờ học (7–17) rồi lồng kiểm sáng/tối, else ngoài giờ.
- Hệ thống tính điểm thi: nếu ≥90 xuất sắc; else if ≥75 giỏi; else if ≥50 trung bình; else kém.
Nâng cao
- Hệ thống đăng ký: nhập username, if tồn tại vào khối 1 rồi lồng if kiểm mật khẩu, else báo “User chưa đăng ký”.
- Nhập 4 cạnh, if tạo thành tứ giác đúng thì lồng kiểm xem có phải hình chữ nhật (cặp cạnh đối bằng nhau).
- Đọc 3 số, if kiểm tăng dần; else if kiểm giảm dần; else lồng else báo “Không tăng, không giảm”.
✅ Tóm lại
Câu lệnh điều kiện lồng nhau giúp xử lý phân nhánh phức tạp theo nhiều tầng. Thực hành thường xuyên để nắm vững, giữ code gọn gàng và logic rõ ràng!