Bỏ qua để đến nội dung

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 {}.

#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.

int age = 15;
if (age >= 18) {
std::cout << "Da du tuoi" << std::endl;
} else {
std::cout << "Chua du tuoi" << std::endl;
}
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;
}

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ề đúng

Thụ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 lon
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;
}
  • Đ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 : b cho phép viết if/else ngắn gọn trên một dòng