Cấu trúc rẽ nhánh (if/else)
Cấu trúc rẽ nhánh cho phép chương trình thực thi các đoạn code khác nhau tùy theo điều kiện. Trong C++, điều kiện được đặt trong dấu ngoặc đơn () và khối lệnh được xác định bằng dấu ngoặc nhọn {}.
if cơ bản
Phần tiêu đề “if cơ bản”#include <iostream>
int main() { int age = 20;
if (age >= 18) { std::cout << "Da du tuoi truong thanh" << std::endl; }
return 0;}⚠️ Lưu ý: điều kiện luôn phải nằm trong dấu ngoặc đơn (), đây là phần bắt buộc của cú pháp if.
if / else
Phần tiêu đề “if / else”int age = 15;
if (age >= 18) { std::cout << "Da du tuoi" << std::endl;} else { std::cout << "Chua du tuoi" << std::endl;}if / else if / else
Phần tiêu đề “if / else if / else”int score = 75;
if (score >= 90) { std::cout << "A" << std::endl;} else if (score >= 80) { std::cout << "B" << std::endl;} else if (score >= 70) { std::cout << "C" << std::endl;} else { std::cout << "F" << std::endl;}Khối lệnh một dòng (không cần {})
Phần tiêu đề “Khối lệnh một dòng (không cần {})”Nếu chỉ có một câu lệnh sau if, dấu {} có thể bỏ qua - nhưng đây là nguồn gốc của nhiều lỗi khó phát hiện, nên hạn chế dùng:
if (age >= 18) std::cout << "Da du tuoi" << std::endl; // Chỉ dòng này thuộc if
std::cout << "Dong nay LUON chay" << std::endl; // Không thuộc if, dù trông giống thụt lề đúngThụt lề trong C++ chỉ mang tính hình thức để code dễ đọc - trình biên dịch dựa vào {} (hoặc dấu ; kết thúc câu lệnh đơn) để xác định khối lệnh, không dựa vào thụt lề.
Toán tử điều kiện ba ngôi (Ternary Operator)
Phần tiêu đề “Toán tử điều kiện ba ngôi (Ternary Operator)”Cho phép viết một biểu thức if/else ngắn gọn trên một dòng:
int age = 20;std::string status = (age >= 18) ? "Nguoi lon" : "Tre em";std::cout << status << std::endl; // Nguoi lonLồng nhau (Nested if)
Phần tiêu đề “Lồng nhau (Nested if)”int age = 25;bool has_license = true;
if (age >= 18) { if (has_license) { std::cout << "Duoc phep lai xe" << std::endl; } else { std::cout << "Can co bang lai" << std::endl; }} else { std::cout << "Chua du tuoi lai xe" << std::endl;}Tổng kết
Phần tiêu đề “Tổng kết”- Điều kiện phải đặt trong
(), khối lệnh nằm trong{} - Nên luôn dùng
{}dù chỉ có một câu lệnh, để tránh lỗi khi thêm dòng code sau này - Toán tử ba ngôi
cond ? a : bcho phép viếtif/elsengắn gọn trên một dòng