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

Vòng lặp while và do-while

while kiểm tra điều kiện trước mỗi lần lặp - nếu điều kiện sai ngay từ đầu, thân vòng lặp không chạy lần nào:

int count = 0;
while (count < 5) {
System.out.println("Count: " + count);
count++;
}
int x = 10;
while (x < 5) {
System.out.println("Không bao giờ in ra dòng này");
}

do-while kiểm tra điều kiện sau mỗi lần lặp - thân vòng lặp luôn chạy ít nhất một lần, kể cả khi điều kiện sai ngay từ đầu:

int count = 0;
do {
System.out.println("Count: " + count);
count++;
} while (count < 5);
int x = 10;
do {
System.out.println("Vẫn in ra dòng này MỘT LẦN"); // chạy 1 lần dù x < 5 là false
} while (x < 5);

⚠️ Lưu ý cú pháp: do-while có dấu ; sau while (điều_kiện).

do-while phù hợp khi bạn luôn muốn chạy ít nhất một lần trước khi kiểm tra điều kiện dừng - ví dụ menu tương tác, yêu cầu nhập lại dữ liệu cho đến khi hợp lệ:

import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
int number;
do {
System.out.print("Nhập một số dương: ");
number = scanner.nextInt();
} while (number <= 0); // luôn hỏi ít nhất 1 lần, lặp lại nếu nhập sai

Nếu điều kiện không bao giờ trở thành false (quên cập nhật biến điều kiện), chương trình sẽ chạy mãi mãi:

int i = 0;
while (i < 10) {
System.out.println(i);
// QUÊN i++ ở đây -> vòng lặp VÔ HẠN!
}

Luôn kiểm tra chắc chắn rằng biến điều kiện được cập nhật đúng cách bên trong vòng lặp.

  • while: kiểm tra điều kiện trước - có thể không chạy lần nào nếu điều kiện sai ngay từ đầu
  • do-while: kiểm tra điều kiện sau - luôn chạy ít nhất một lần
  • Cẩn thận cập nhật biến điều kiện đúng cách để tránh vòng lặp vô hạn