NỘI DUNG BÀI VIẾT
Lệnh if-else (hay gọi tắt là lệnh if) cho phép rẽ nhánh bằng cách lựa chọn thực hiện một trong hai hành động. Ví dụ, trong một chương trình xếp loại điểm thi, nếu điểm của sinh viên nhỏ hơn 4.0, sinh viên đó được coi là trượt, nếu không thì được coi là đỗ. Thể hiện nội dung đó bằng một lệnh if-else của Java, ta có đoạn mã:
if (score < 4.0)
System.out.print("Failed");
else
System.out.print("Passed");
Khi chương trình chạy một lệnh if-else, đầu tiên nó kiểm tra biểu thức điều kiện nằm trong cặp ngoặc đơn sau từ khóa if. Nếu biểu thức có giá trị bằng true thì lệnh nằm sau từ khóa if sẽ được thực hiện. Ngược lại, lệnh nằm sau else sẽ được thực hiện. Chú ý là biểu thức điều kiện phải được đặt trong một cặp ngoặc đơn.Trong cấu trúc rẽ nhánh if-else, ta có thể bỏ phần else nếu không muốn chương trình thực hiện hành động nào nếu điều kiện không thỏa mãn. Chẳng hạn, nếu muốn thêm một lời khen đặc biệt cho điểm số xuất sắc từ 9.0 trở lên, ta có thể thêm lệnh if sau vào trong chương trình:
if (score >= 9.0)
System.out.print("Excellent!");
Lệnh if-else lồng nhau
Ta có thể dùng các cấu trúc if-else lồng nhau để tạo ra điều kiện rẽ nhánh phức tạp. Lấy một ví dụ phức tạp hơn: cho trước điểm số (lưu tại biến score kiểu double), xác định xếp loại học lực A, B, C, D, F tùy theo điểm đó. Quy tắc xếp loại là: nếu điểm từ 8.5 trở lên thì đạt loại A, điểm từ 7.0 tới dưới 8.5 đạt loại B, v.v.. Tại đoạn mã xét các trường hợp của xếp loại điểm, ta có thể dùng cấu trúc if-else lồng nhau như sau:
if (score >= 8.5)
grade = 'A';
else if (score >= 7.0)
grade = 'B';
else if (score >= 5.5)
grade = 'C';
else if (score >= 4.0)
grade = 'D';
else
grade = 'F';
Sử dụng dấu ngoặc {}
Một điều cần đặc biệt lưu ý là nếu muốn thực hiện nhiều hơn một lệnh trong mỗi trường hợp của lệnh if-else, ta cần dùng cặp ngoặc { } bọc tập lệnh đó thành một khối lệnh. Ví dụ, phiên bản phức tạp hơn của lệnh if:
if(score < 4.0){
System.out.println("Failed");
System.out.println("You have to take this course again");
}
else {
System.out.println("Congratulations!!!");
System.out.println("You passed this course.");
}