Trong lập trình, thường có những trường hợp bạn có một nhiệm vụ lặp đi lặp lại mà bạn muốn thực hiện nhiều lần. Vòng lặp được sử dụng để tự động hóa các tác vụ lặp đi lặp lại này và cho phép bạn tạo mã hiệu quả hơn.
while
và do...while
vòng lặp trong Java được sử dụng để thực thi một khối mã miễn là một điều kiện cụ thể được đáp ứng. Các vòng lặp này tương tự như if
có điều kiện các câu lệnh, là các khối mã chỉ thực thi nếu một điều kiện cụ thể được đánh giá là true. Không giống như if
tuy nhiên, câu lệnh while
vòng lặp chạy cho đến khi một điều kiện không còn đúng nữa.
Hướng dẫn này sẽ thảo luận về những điều cơ bản của while
và do...while
các câu lệnh trong Java, và sẽ xem qua một vài ví dụ để minh họa những câu lệnh này trong chương trình Java.
Vòng lặp trong khi Java
while
vòng lặp lặp qua một khối mã miễn là một điều kiện được chỉ định đánh giá là true. Cú pháp cho while
vòng lặp tương tự như vòng lặp if
truyền thống tuyên bố. Đây là cú pháp cho một Java while
vòng:
while (condition_is_met) {// Mã để thực thi}
while
vòng lặp sẽ kiểm tra biểu thức bên trong dấu ngoặc đơn. Nếu biểu thức Boolean được đánh giá là true, phần thân của vòng lặp sẽ thực thi, sau đó biểu thức được đánh giá lại. Chương trình sẽ tiếp tục quá trình này cho đến khi biểu thức được đánh giá là false, sau đó dấu while
vòng lặp bị tạm dừng và phần còn lại của chương trình sẽ chạy.
Hãy xem qua một ví dụ để cho thấy cách while
vòng lặp có thể được sử dụng trong Java. Giả sử chúng tôi là một thợ mộc và chúng tôi đã quyết định bắt đầu bán một chiếc bàn mới trong cửa hàng của mình. Chúng tôi chỉ có khả năng đặt năm bàn, sau thời điểm này, những người muốn có bàn sẽ được đưa vào danh sách chờ.
Chúng tôi muốn tạo một chương trình cho chúng tôi biết có bao nhiêu người nữa có thể đặt bàn trước khi chúng tôi phải đưa họ vào danh sách chờ. Chúng tôi có thể làm như vậy bằng cách sử dụng while
vòng lặp như thế này sẽ thực hiện phần thân của vòng lặp cho đến khi số lượng đơn đặt hàng được thực hiện không nhỏ hơn giới hạn:
int limit =5; int order_made =0; while (order_madeMã của chúng tôi trả về:
81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.
Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.
Có thể đặt thêm 4 bàn nữa. 3 bàn có thể được đặt thêm. 2 bàn nữa có thể được đặt. 1 có thể đặt thêm bàn. 0 có thể đặt thêm bàn.Hãy chia nhỏ mã của chúng ta. Trên dòng đầu tiên, chúng tôi khai báo một biến có tên là
limit
theo dõi số lượng bảng tối đa mà chúng tôi có thể thực hiện. Sau đó, chúng tôi khai báo một biến có tên làorders_made
lưu trữ số lượng đơn đặt hàng đã thực hiện.
Sau đó, chương trình của chúng tôi thực thi một
while
vòng lặp, chạy trong khiorders_made
nhỏ hơnlimit
. Sau đó, chúng tôi sử dụngorders_made++
toán tử gia tăng để thêm 1 vàoorders_made
.
Sau khi toán tử tăng dần được thực thi, chương trình của chúng tôi sẽ tính toán dung lượng còn lại của các bảng bằng cách trừ đi “
orders_made
từlimit
. Sau đó, nó in ra thông báo[capacity] more tables can be ordered.
vào bảng điều khiển.
Câu lệnh “while” của chúng tôi ngừng chạy khi
orders_made
lớn hơnlimit
.
Java Do While Loop
do…while
vòng lặp là một loạiwhile
vòng.do...while
vòng lặp thực thi khối mã trongdo
chặn một lần trước khi kiểm tra xem một điều kiện có giá trị đúng hay không. Sau đó, chương trình sẽ lặp lại vòng lặp miễn là điều kiện đúng.
Sự khác biệt giữa
while
vàdo...while
vòng lặp làwhile
các vòng lặp đánh giá một điều kiện trước đó chạy mã trongwhile
khối, ngược lại thì làm… vòng lặp while đánh giá điều kiện sau chạy mã trongdo
khối.
Cú pháp của vòng lặp do… while như sau:
do {// Mã để thực thi} while (condition_is_met);Hãy sử dụng một ví dụ để giải thích cách hoạt động của vòng lặp do… while.
Giả sử rằng chúng tôi đang tạo một trò chơi đoán yêu cầu người dùng đoán một số từ một đến mười. Chúng tôi muốn người dùng của mình trước tiên được yêu cầu nhập một số trước khi kiểm tra xem họ có đoán đúng số hay không. Nếu người dùng nhập sai số, họ nên được khuyến khích để thử lại. Chúng tôi có thể hoàn thành nhiệm vụ này bằng cách sử dụng vòng lặp do… while.
Dưới đây là một ví dụ về chương trình yêu cầu người dùng đoán một số, sau đó đánh giá xem liệu người dùng có đoán đúng số hay không bằng cách sử dụng vòng lặp do… while:
import java.util.Scanner; class GuakenGame {public static void main (String [] args) {int number =8; int đoán =0; Scanner input =new Scanner (System.in); do {System.out .print ("Nhập một số từ 1 đến 10:"); đoán =input.nextInt ();} while (number! =đoán); System.out.println ("Bạn đúng!"); }}Khi chúng tôi chạy mã của mình, chúng tôi được yêu cầu đoán số đầu tiên , trước điều kiện trong
do...while
của chúng tôi vòng lặp được đánh giá. Dưới đây là những gì sẽ xảy ra khi chúng tôi cố gắng đoán một vài con số trước khi cuối cùng đoán đúng:Nhập số từ 1 đến 10:9 Nhập số từ 1 đến 10:1 Nhập số từ 1 đến 10:4 Nhập số từ 1 đến 10:5 Nhập số từ 1 đến 10:8 Bạn đúng!Hãy chia nhỏ mã của chúng ta. Đầu tiên, chúng tôi nhập
util.Scanner
, được sử dụng để thu thập thông tin đầu vào của người dùng. Sau đó, chúng tôi xác định một lớp có tên làGuessingGame
trong đó mã của chúng tôi tồn tại.
Sau đó, chúng tôi xác định hai biến:một được gọi là
number
nơi lưu trữ số được đoán và một số khác được gọi làguess
lưu trữ dự đoán của người dùng.
Sau đó, chúng tôi sử dụng phương thức Máy quét để bắt đầu nhập liệu của người dùng. Chúng tôi in ra thông báo
Enter a number between 1 and 10:
vào bảng điều khiển, sau đó sử dụnginput.nextInt()
phương pháp để lấy số mà người dùng đã nhập.
Sau khi mã này được thực thi, vòng lặp do… while sẽ đánh giá xem số mà người dùng đã đoán có bằng với số mà người dùng sẽ đoán hay không. Nếu người dùng đã đoán sai số, nội dung của
do
chạy lại vòng lặp; nếu người dùng đoán đúng số, vòng lặp do… while ngừng thực thi và thông báoYou’re correct!
được in ra bảng điều khiển.
Vòng lặp vô hạn
Vòng lặp vô hạn là vòng lặp sẽ tiếp tục chạy mãi mãi. Nếu bạn có
while
vòng lặp có câu lệnh không bao giờ đánh giá thành false, vòng lặp sẽ tiếp tục và có thể làm hỏng chương trình của bạn. Vì vậy, điều quan trọng là phải đảm bảo rằng vào một thời điểm nào đó, vòng lặp while của bạn ngừng chạy.
Dưới đây là một ví dụ về vòng lặp vô hạn trong Java:
while (true) {// Mã để thực thi}Vòng lặp này sẽ chạy vô hạn. Tuy nhiên, chúng tôi có thể dừng chương trình của mình bằng cách sử dụng
break
tuyên bố. Giả sử chúng tôi đang tạo một chương trình theo dõi số lượng bảng còn hàng. Chúng tôi chỉ có năm bảng trong kho. Khi không có bảng trong kho, chúng tôi muốnwhile
vòng lặp để dừng lại. Chúng tôi có thể tạo một chương trình đáp ứng các thông số kỹ thuật này bằng cách sử dụng mã sau:
Boolean table_in_stock =true; int order_made =0; while (table_in_stock) {order_made ++; if (order_made ==5) {System.out.println ("Chúng tôi hết hàng."); nghỉ; } else {int table_left =5 - order_made; String message ="Có" + table_left + "bảng trong kho."; System.out.println (tin nhắn); }}Khi chúng tôi chạy mã của mình, phản hồi sau được trả về:
Có 4 bảng trong kho.Có 3 bảng trong kho, 2 bảng còn hàng, còn 1 bảng. Chúng tôi đã hết hàng.Trong ví dụ của chúng tôi,
while
vòng lặp sẽ tiếp tục thực thi miễn làtables_in_stock
là đúng. Nhưng chúng tôi không bao giờ chỉ định cách màtables_in_stock
có thể trở thành sai.
Vì vậy, trong mã của chúng tôi, chúng tôi sử dụng
break
câu lệnh được thực thi khiorders_made
bằng 5.
Điều này có nghĩa là khi có ít hơn năm đơn đặt hàng được thực hiện, một thông báo sẽ được in ra nói rằng,
There are [tables_left] tables in stock.
Nhưng khiorders_made
bằng 5, một thông báo cho biếtWe are out of stock.
sẽ được in ra bảng điều khiển và câu lệnh break được thực thi. Khi câu lệnh break được chạy,while
của chúng tôi tuyên bố sẽ dừng lại.
Kết luận
while
Vòng lặp được sử dụng trong Java thực thi một khối mã cụ thể trong khi một câu lệnh là đúng và dừng khi câu lệnh sai.do...while
vòng lặp thực thi một khối mã trước tiên, sau đó đánh giá một câu lệnh để xem liệu vòng lặp có tiếp tục tiếp tục hay không.
Hướng dẫn này thảo luận về cách sử dụng cả
while
vàdo...while
vòng lặp trong Java. Chúng ta cũng đã nói về các vòng lặp vô hạn và xem qua một ví dụ về từng phương thức này trong chương trình Java. Giờ đây, bạn đã được trang bị kiến thức cần thiết để viết Javawhile
vàdo...while
lặp lại như một chuyên gia!