← Danh sách bài học
🔀
Điều kiện
Cấu trúc điều kiện cho phép chương trình rẽ nhánh: chọn hành động khác nhau dựa vào dữ liệu. Đây là nền tảng của mọi logic nghiệp vụ.
1. if / else if / else
Cú pháp: if (điều_kiện) { ... } else if (...) { ... } else { ... }. Chỉ một nhánh được thực thi.
int diem; cin >> diem;
if (diem >= 8) cout << "Gioi";
else if (diem >= 6.5) cout << "Kha";
else if (diem >= 5) cout << "Trung binh";
else cout << "Yeu";2. Toán tử ba ngôi
Rút gọn if-else đơn giản: điều_kiện ? giá_trị_khi_đúng : giá_trị_khi_sai.
int max_ab = (a > b) ? a : b;3. switch-case
Dùng với giá trị nguyên/ký tự có nhiều nhánh rõ ràng. Nhớ break sau mỗi case, nếu không sẽ bị fall-through (chạy tiếp các case sau).
switch (thang) {
case 1: case 3: case 5: case 7:
case 8: case 10: case 12: cout << 31; break;
case 4: case 6: case 9: case 11: cout << 30; break;
case 2: cout << 28; break;
default: cout << "Thang khong hop le";
}💻 Code mẫu thực chiến
Kiểm tra năm nhuận
Năm nhuận: chia hết cho 4 và (không chia hết cho 100 hoặc chia hết cho 400).
int y; cin >> y;
bool nhuan = (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0);
cout << (nhuan ? "Nam nhuan" : "Khong nhuan");Phân loại BMI
BMI = cân nặng (kg) / chiều cao² (m²).
double kg, m; cin >> kg >> m;
double bmi = kg / (m*m);
if (bmi < 18.5) cout << "Gay";
else if (bmi < 25) cout << "Binh thuong";
else if (bmi < 30) cout << "Thua can";
else cout << "Beo phi";Máy tính bỏ túi 4 phép
Nhập a, phép, b — in kết quả. Cẩn thận chia cho 0.
double a, b; char op;
cin >> a >> op >> b;
switch (op) {
case '+': cout << a+b; break;
case '-': cout << a-b; break;
case '*': cout << a*b; break;
case '/':
if (b == 0) cout << "Loi: chia 0";
else cout << a/b;
break;
default: cout << "Phep khong hop le";
}💡 Mẹo & lưu ý
- So sánh double không dùng ==, hãy dùng abs(a-b) < 1e-9.
- if không có {} chỉ áp dụng cho câu lệnh ngay sau — dễ gây bug, luôn dùng {}.
- switch chỉ nhận kiểu nguyên (int, char, enum), không nhận string.