Chương 3: Lệnh rẽ nhánh và vòng lặp Mục đích
3.1.1 Lệnh if lồng nhau
Câu lệnh if-else kiểm tra kết quả của biểu thức hoặc biến điều kiện rồi dựa trên kết quả trả về để thực hiện các lệnh tương ứng. Câu lệnh if có thể được sử dụng lồng trong một cấu trúc if khác, loại if này được gọi là nested-if. Như vậy, nested- if là cấu trúc if được lồng trong cấu trúc if hoặc else khác.
Các điểm quan trọng cần lưu ý khi sử dụng lệnh if lồng nhau:
Câu lệnh else luôn luôn được kết hợp lệnh if gần nhất.
Cú pháp:
if (Điều_kiện) {
if (Điều_kiện) {
//câu lệnh/khối lệnh này được thực hiện nếu điều kiện đúng }
else {
//câu lệnh/khối lệnh này được thực hiện nếu điều kiện sai }
} else else {
//câu lệnh/khối lệnh này được thực hiện nếu điều kiện sai }
Đoạn mã dưới đây minh họa cách sử dụng cấu trúc nested-if
Đoạn mã 1:
Scanner input = new Scanner(System.in); System.out.println(“Nhập một số: ”); num = input.nextInt();
//Kiểm tra xem num có chia hết cho 3 không? //câu lệnh if ngoài
if(num % 3 == 0) {
//kiểm tra xem num có chia hết cho 5 không? if(num % 5 == 0)
{
//in ra thông báo num chia hết cho 3 và 5
System.out.println(“The number is divisible by both 3 and 5.”); }
else {
//Số chia hết cho 3 nhưng không chia hết cho 5
System.out.println(“The number is divisible by 3 but not by 5.”); }
} else else {
//Số không chia hết cho 3 và 5
System.out.println(“The number is not divisible by 3 and 5.”); }
Chương 3 Rẽ nhánh và vòng lặp
35/114
Giải thích đoạn mã lệnh
Đoạn mã trên khái báo một biến num và chứa số nguyên nhập vào từ người dùng. Chương trình sử dụng cấu trúc if lồng nhau, đầu tiên chương trình kiểm tra số nguyên người dùng nhập vào (biến num) có chia hết cho 3 và 5 hay chỉ chia hết cho 3 và in ra các thông báo tương ứng. Ở đây, câu lệnh else cuối cùng được kết hợp với if (num % 3 ==0). Câu lệnh else bên trong được kết hợp với if (num % 5 == 0) bởi vì nó được kết hợp với if gần nhất trong cùng khối lệnh.