Chương 3: Lệnh rẽ nhánh và vòng lặp Mục đích
3.2.1 Vòng lặp while
Vòng lặp while dùng để thực hiện một lệnh hoặc khối lệnh chừng nào điều kiện còn true (đúng). Tại một vị trí nào đó trong vòng lặp làm cho biểu thức điều kiện thành false (sai), nếu không vòng lặp sẽ thực hiện vô tận.
Chương 3 Rẽ nhánh và vòng lặp 37/114 Cú pháp: ... while(điều_kiện) { Các câu lệnh; ... } ...
Thân của vòng lặp là rỗng nếu nó không chứa câu lệnh nào cả, về mặt cú pháp, nó vẫn đúng trong Java. Đoạn mã dưới đây minh họa cách sử dụng thân vòng lặp rỗng:
Đoạn mã 3:
...
int num1 = 1; int num2 = 30;
while (++num1 < --num2);
System.out.println(“The midpoint is: ” + num1); ...
Trong đoạn mã trên, giá trị của biến num1 được tăng 1 và giá trị của biến num2 được giảm 1, sau đó đem so sánh. Vòng lặp được thực hiện chừng nào giá trị của num1 lớn hoặc bằng num2. Do vậy, biến num1 có giá trị giữa num1 và num2, kết quả in ra:
The midpoint is: 16
Biểu thức điều kiện của vòng lặp có thể phức tạp, biến điều khiển có thể được thay đổi giá trị trong thân vòng lặp. Tuy nhiên biểu thức điều kiện phải false (sai hoặc không thõa) nếu không vòng lặp sẽ thực hiện vô tận. Đoạn mã dưới đây minh họa vòng lặp vô tận:
Đoạn mã 4:
...
int count = 0;
while (count < 100) {
System.out.println(“This goes on forever, HELP!!!”); count = count + 10; //Tăng count lên 10 đơn vị
System.out.println(“Count = ” + count); count = count - 10; //giảm count 10 đơn vị System.out.println(“Count = ” + count); }
...
Trong đoạn mã trên, giá trị của count luôn bằng 0 và nhỏ hơn 100. Vì vậy, biểu thức điều kiện luôn luôn true (đúng), vòng lặp không bao giờ kết thúc. Một lệnh
break có thể được dùng để ngắt vòng lặp trong chương trình trên. Nếu có dòng này ở cuối vòng lặp, vòng lặp chỉ thực hiện 1 lần và kết thúc, kết quả hiển thị:
This goes on forever, HELP!!! Count = 10
Count = 0
Tuy nhiên, đây chỉ là minh họa cách sử dụng, trong thực tế chúng ta không dùng như vậy.
Chương 3 Rẽ nhánh và vòng lặp
39/114 Điểm quan trọng cần lưu ý khi sử dụng vòng lặp while là, các biến điều khiển (biến được sử dụng trong biểu thức điều kiện) phải được khai báo trước khi sử dụng. Xem ví dụ dưới đây là không hợp lệ
while (int val = 10) { } //biểu thức điều khiển không hợp lệ