Vòng lặp do - while trong Java
Như đã nói trong bài trước, trong ngôn ngữ lập trình Java cũng như các ngôn ngữ lập trình khác thì chúng ta có 3 loại vòng lặp chính đó là while
, do - while
và for
. Trong bài trước, tôi đã giới thiệu về vòng lặp while
bao gồm cú pháp, cách sử dụng và ví dụ, bài tập vận dụng. Trong bài hôm nay, chúng ta sẽ tiếp tục tìm hiểu một loại vòng lặp khác đó là vòng lặp do - while, so sánh sự khác nhau của vòng lặp while
và do - while
và sau đó tôi sẽ đưa ra ví dụ minh họa cho cấu trúc này.
1. Cú pháp, cách hoạt động và công dụng vòng lặp do - while.
Công dụng.
Vòng lặp do - while
là cấu trúc điều khiển lặp được dùng để thực hiện một lệnh hay một khối lệnh với số lần lặp chưa xác định trước nhưng khác với while
, cấu trúc do - while
chỉ kiểm tra điều kiện lặp sau khi thân vòng lặp đã được thực hiện một lần.
Cú pháp.
do { // Các lệnh } while (điều_kiện_lặp); // Lệnh kế tiếp
điều_kiện_lặp
là biểu thức để xác định điều kiện lặp. Biểu thức này phải trả về giá trị là đúng (true
) hoặc sai (false
).- Các lệnh nằm trong cặp dấu
{}
là thân của vòng lặp.
Cách hoạt động.
Lưu đồ hoạt động của vòng lặp do - while như sau:
Đầu tiên, các lệnh nằm trong thân của vòng lặp do - while
sẽ được thực hiện. Sau khi thực hiện xong các lệnh này thì biểu thức điều_kiện_lặp
sẽ được kiểm tra: nếu biểu thức này có giá trị đúng (true
) thì tiếp tục quay lại thực hiện các lệnh trong thân vòng lặp. Nếu đến một lúc nào đó biểu thức điều_kiện_lặp
có giá trị sai (false
) thì các lệnh trong thân vòng lặp sẽ không được thực hiện và vòng lặp do - while
sẽ kết thúc.
Bài viết này được đăng tại [free tuts .net]
Lưu ý: Vòng lặp do - while
thực hiện các câu lệnh trong thân vòng lặp trước rồi mới kiểm tra điều kiện nên các câu lệnh nằm trong thân vòng lặp sẽ được thực hiện ít nhất là một lần. Sau đó, tùy theo kết quả của biểu thức điều kiện, chương trình sẽ tiếp tục thực hiện hoặc thoát ra khỏi vòng lặp và thực hiện các lệnh nằm ngoài vòng lặp. Nó hoàn toàn ngược với vòng lặp while
: vòng lặp while
kiểm tra trước rồi mới thực hiện, còn do - while
thực hiện trước rồi mới kiểm tra (trong một số trường hợp thì kết quả của 2 vòng lặp này là giống nhau nên các bạn cố gắng nắm chắc 2 loại vòng lặp này để lựa chọn loại vòng lặp phù hợp với yêu cầu của chương trình).
2. Ví dụ.
Viết chương trình nhập vào các số nguyên và tính tổng các số đó, nếu tổng lớn hơn > 100 thì kết thúc vòng lặp và hiển thị thông báo tổng của các số đã nhập.
package vong_lap_do_while; import java.util.Scanner; public class TinhTongCacSoNguyen { public static void main(String[] args) { int number, sum = 0; Scanner scanner = new Scanner(System.in); // bắt đầu vòng lặp // điều kiện sum < 100 chỉ được thực hiện sau khi thân vòng lặp đã được thực hiện. do { System.out.println("Nhập vào số nguyên bất kỳ: "); number = scanner.nextInt(); sum += number; // sum = sum + number; } while (sum < 100); System.out.println("Tổng các số nguyên vừa nhập = " + sum); } }
Kết quả sau khi biên dịch chương trình:
Quá trình hoạt động của chương trình này như sau:
Bước 1: Khởi tạo biến tổng sum = 0
.
Bước 2: Nhập vào số nguyên number = 1
và thực hiện tính tổng, lúc này sum = sum + number = 0 + 1 = 1
.
Bước 3: Kiểm tra sum < 100
đúng nên nhập vào số 6 và thực hiện lệnh sum = sum + number = 1 + 6 = 7
.
Bước 4: Kiểm tra sum < 100
đúng nên nhập vào số 9 và thực hiện lệnh sum = sum + number = 7+ 9 = 16
.
Bước 5: Kiểm tra sum < 100
đúng nên nhập vào số 15 và thực hiện lệnh sum = sum + number = 16 + 15 = 31
.
Bước 6: Kiểm tra sum < 100
đúng nên nhập vào số 18 và thực hiện lệnh sum = sum + number = 31 + 18 = 49
.
Bước 7: Kiểm tra sum < 100
đúng nên nhập vào số 1 và thực hiện lệnh sum = sum + number = 49 + 1 = 50
.
Bước 8: Kiểm tra sum < 100
đúng nên nhập vào số 20 và thực hiện lệnh sum = sum + number = 50 + 20 = 70
.
Bước 9: Kiểm tra sum < 100
đúng nên nhập vào số 55 và thực hiện lệnh sum = sum + number = 70 + 55 = 125
.
Bước 10: Kiểm tra sum < 100
sai nên kết thúc vòng lặp do - while
và hiển thị tổng sum = 125
ra màn hình.
3. Lời kết.
Trong bài này tôi đã giới thiệu đến các bạn cấu trúc lặp đầu tiên đó là cấu trúc vòng lặp do - while bao gồm cú pháp, công dụng và ví dụ minh họa. Để các bạn có thể nắm rõ hơn về này, tôi có đưa ra một số các bài tập cho các bạn luyện tập. Sang bài sau, chúng ta sẽ tìm hiểu về cấu trúc vòng lặp cuối cùng là vòng lặp for. Các bạn theo dõi nhé!
Câu hỏi thường gặp liên quan:
- Java - Tìm số nguyên m lớn nhất sao cho 1 + 2 + 3 + ... + m < n (n nhập từ bàn phím).
- Java - Viết chương trình tính giai thừa của một số
- Java - Viết chương trình kiểm tra username và password.
- Java - Viết chương trình cho phép người dùng chọn đáp án đúng (câu hỏi 2)