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

Cấu trúc rẽ nhánh (if/else)

int age = 20;
if (age >= 18) {
System.out.println("Bạn đã đủ tuổi trưởng thành.");
}

Điều kiện trong if phải là một biểu thức boolean - khác với C/C++, Java không cho phép dùng số nguyên (0/khác 0) thay cho boolean:

int x = 1;
// if (x) { ... } // LỖI BIÊN DỊCH! x phải là boolean, không tự động chuyển từ int
if (x != 0) { ... } // đúng cách viết trong Java
int score = 65;
if (score >= 50) {
System.out.println("Đạt");
} else {
System.out.println("Không đạt");
}
int score = 82;
if (score >= 90) {
System.out.println("Xuất sắc");
} else if (score >= 75) {
System.out.println("Giỏi");
} else if (score >= 50) {
System.out.println("Đạt");
} else {
System.out.println("Không đạt");
}
// In ra: Giỏi

Các điều kiện được kiểm tra lần lượt từ trên xuống, dừng lại ngay khi gặp điều kiện đầu tiên đúng.

int age = 20;
boolean hasTicket = true;
if (age >= 18) {
if (hasTicket) {
System.out.println("Được vào xem");
} else {
System.out.println("Cần mua vé");
}
} else {
System.out.println("Chưa đủ tuổi");
}

Có thể viết gọn hơn bằng cách kết hợp điều kiện với &&:

if (age >= 18 && hasTicket) {
System.out.println("Được vào xem");
}

Với các rẽ nhánh đơn giản chỉ để chọn một trong hai giá trị, có thể dùng toán tử ba ngôi thay cho if/else:

int age = 20;
String status = (age >= 18) ? "Người lớn" : "Trẻ em"; // gọn hơn if/else đầy đủ
// Tương đương:
String status2;
if (age >= 18) {
status2 = "Người lớn";
} else {
status2 = "Trẻ em";
}

Cú pháp: <điều_kiện> ? <giá_trị_nếu_đúng> : <giá_trị_nếu_sai>.

  • if/else if/else để rẽ nhánh dựa trên điều kiện boolean
  • Điều kiện phải là boolean tường minh - không có chuyển đổi ngầm từ số nguyên
  • Toán tử ba ngôi ?: là cách viết gọn cho rẽ nhánh chọn giá trị đơn giản