Bài 25. Vòng Lặp do-while Trong Java | Tự Học Java Căn Bản

Published on
Thuộc danh mục: Học Java Căn Bản|Đăng bởi: Lê Thanh Giang||6 min read
Facebook share iconLinkedIn share iconTwitter share iconPinterest share iconTumblr share icon
Bài 25. Vòng Lặp do-while Trong Java | Tự Học Java Căn Bản

Vòng lặp do-while là gì?

Trong lập trình Java, vòng lặp do-while là một trong ba loại vòng lặp cơ bản, bên cạnh forwhile. Nó được sử dụng khi bạn muốn khối lệnh chạy ít nhất một lần trước khi kiểm tra điều kiện lặp.

Vòng lặp do-while có cú pháp đơn giản và hữu ích trong nhiều tình huống, chẳng hạn như nhập dữ liệu từ người dùng cho đến khi nhập đúng, hoặc thực hiện một hành động ít nhất một lần rồi mới kiểm tra điều kiện dừng.

Cú pháp vòng lặp do-while trong Java

Cú pháp của vòng lặp do-while trong Java như sau:

do {
    // Khối lệnh được thực thi ít nhất một lần
} while (điều kiện);

Cách hoạt động của vòng lặp do-while:

  1. Chạy khối lệnh bên trong do ít nhất một lần.
  2. Sau khi thực hiện xong, kiểm tra điều kiện trong while.
  3. Nếu điều kiện đúng, vòng lặp tiếp tục chạy.
  4. Nếu điều kiện sai, vòng lặp kết thúc.

Ví dụ cơ bản về vòng lặp do-while

Dưới đây là hai đoạn ví dụ về vòng lặp do-while:

  1. Vòng lặp do-while với điều kiện sai ngay từ đầu
    2️. Vòng lặp do-while kiểm tra nhập liệu từ người dùng

Ví dụ 1: Vòng lặp do-while với điều kiện sai ngay từ đầu

Mặc dù điều kiện sai (i < 5 là false ngay từ đầu), vòng lặp vẫn chạy ít nhất một lần.

public class DoWhileWrongCondition {
    public static void main(String[] args) {
        int i = 10; // i khởi tạo với giá trị không thỏa mãn điều kiện

        do {
            System.out.println("Vòng lặp do-while chạy một lần!");
        } while (i < 5); // Điều kiện sai ngay từ đầu

        System.out.println("Vòng lặp do-while kết thúc.");
    }
}

Kết quả:

Vòng lặp do-while chạy một lần!
Vòng lặp do-while kết thúc.

Giải thích:

  • i = 10 không thỏa mãn i < 5, vòng lặp vẫn chạy một lần trước khi kiểm tra điều kiện.
  • Sau đó, vòng lặp kết thúc vì điều kiện sai.

Ví dụ 2: Vòng lặp do-while kiểm tra nhập liệu từ người dùng

Chương trình yêu cầu người dùng nhập một số từ 1 đến 10. Nếu nhập sai, yêu cầu nhập lại.

import java.util.Scanner;

public class DoWhileUserInput {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number;

        do {
            System.out.print("Nhập một số từ 1 đến 10: ");
            number = scanner.nextInt();

            if (number < 1 || number > 10) {
                System.out.println("Số không hợp lệ! Vui lòng nhập lại.");
            }
        } while (number < 1 || number > 10); // Kiểm tra điều kiện

        System.out.println("Bạn đã nhập số hợp lệ: " + number);
        scanner.close();
    }
}

Ví dụ chạy chương trình:

Nhập một số từ 1 đến 10: 15
Số không hợp lệ! Vui lòng nhập lại.
Nhập một số từ 1 đến 10: 0
Số không hợp lệ! Vui lòng nhập lại.
Nhập một số từ 1 đến 10: 7
Bạn đã nhập số hợp lệ: 7

Giải thích:

  • Chương trình luôn chạy ít nhất một lần để yêu cầu nhập số.
  • Nếu nhập ngoài khoảng 1-10, chương trình yêu cầu nhập lại.
  • Khi nhập đúng, vòng lặp dừng và in kết quả.

So sánh vòng lặp do-while với vòng lặp while

Sự khác biệt chính:

Đặc điểmwhiledo-while
Kiểm tra điều kiện trướcKhông (thực thi trước, kiểm tra sau)

Có thể chạy 0 lần

Có (nếu điều kiện sai ngay từ đầu)Không (luôn chạy ít nhất một lần)
Khi nào dùng?Khi có thể không cần chạy lặpKhi cần chạy ít nhất một lần

Ứng dụng thực tế của vòng lặp do-while

Nhập số từ người dùng cho đến khi nhập đúng

Giả sử bạn muốn yêu cầu người dùng nhập một số trong khoảng từ 1 đến 10, nếu nhập sai thì yêu cầu nhập lại.

import java.util.Scanner;

public class InputValidation {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number;

        do {
            System.out.print("Nhập một số từ 1 đến 10: ");
            number = scanner.nextInt();
        } while (number < 1 || number > 10); // Kiểm tra điều kiện

        System.out.println("Bạn đã nhập số hợp lệ: " + number);
        scanner.close();
    }
}

Cách hoạt động:

  • Vòng lặp sẽ chạy ít nhất một lần, yêu cầu nhập số.
  • Nếu số nhập vào nằm ngoài khoảng 1-10, chương trình yêu cầu nhập lại.
  • Khi nhập đúng, vòng lặp dừng và in ra số hợp lệ.

Tính tổng các số cho đến khi người dùng nhập 0

import java.util.Scanner;

public class SumUntilZero {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number;
        int sum = 0;

        do {
            System.out.print("Nhập một số (0 để dừng): ");
            number = scanner.nextInt();
            sum += number; // Cộng số vừa nhập vào tổng
        } while (number != 0); // Dừng khi nhập 0

        System.out.println("Tổng các số đã nhập: " + sum);
        scanner.close();
    }
}

Cách hoạt động:

  • Chương trình yêu cầu nhập số nhiều lần.
  • Nếu nhập 0, vòng lặp dừng và in tổng các số đã nhập.

Khi nào nên sử dụng vòng lặp do-while?

Sử dụng do-while trong các tình huống:

  • Khi bạn cần đảm bảo khối lệnh chạy ít nhất một lần.
  • Khi yêu cầu nhập dữ liệu từ người dùng và cần kiểm tra tính hợp lệ.
  • Khi xử lý menu điều khiển trong các ứng dụng console.

Không nên dùng do-while khi:

  • Bạn không chắc chắn rằng vòng lặp phải chạy ít nhất một lần.
  • Bạn muốn kiểm tra điều kiện trước khi thực thi vòng lặp.

Kết luận

Nội dungChi tiết
Chạy ít nhất 1 lần?

So sánh với while

while kiểm tra trước, do-while kiểm tra sau

Khi nào dùng?

Khi cần chạy ít nhất một lần trước khi kiểm tra điều kiện

Ứng dụngNhập dữ liệu từ người dùng, menu console, kiểm tra điều kiện

Tóm lại: Vòng lặp do-while rất hữu ích khi bạn cần thực thi ít nhất một lần trước khi kiểm tra điều kiện.

Bài tiếp theo: Bài 26. Cách sử dụng câu lệnh break, continue và return trong Java

Bài viết mới nhất

Bài viết liên quan

Newsletter border

Đăng ký để nhận tin từ RiverLee