Cấu trúc rẽ nhánh (if/else)
1. Câu lệnh if
Phần tiêu đề “1. Câu lệnh if”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ừ intif (x != 0) { ... } // đúng cách viết trong Java2. if / else
Phần tiêu đề “2. if / else”int score = 65;
if (score >= 50) { System.out.println("Đạt");} else { System.out.println("Không đạt");}3. if / else if / else
Phần tiêu đề “3. if / else if / else”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ỏiCá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.
4. if lồng nhau (nested if)
Phần tiêu đề “4. if lồng nhau (nested if)”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");}5. Toán tử ba ngôi (ternary operator) ?:
Phần tiêu đề “5. Toán tử ba ngôi (ternary operator) ?:”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>.
Tổng kết
Phần tiêu đề “Tổng kết”if/else if/elseđể rẽ nhánh dựa trên điều kiệnboolean- Điều kiện phải là
booleantườ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