Vòng lặp for

Một phần của tài liệu Giáo án - Bài giảng: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA (Trang 40 - 43)

Chương 3: Lệnh rẽ nhánh và vòng lặp Mục đích

3.2.3Vòng lặp for

Vòng lặp for được sử dụng khi người dùng biết trước số bước lặp. Khai báo của vòng lặp for gồm 3 phần:

 Khai báo và khởi tạo giá trị của các biến

 Biểu thức logic

 Biểu thức điều khiển lặp

Ba phần khai báo này phân cách nhau bằng dấu chấm phẩy (;). Khi vòng lặp bắt đầu, phần khai báo của vòng lặp được thực hiện. Thông thường, đây là biểu thức khởi gán giá trị ban đầu và đóng vai trị là biến đếm điều khiển vịng lặp. Biểu thức khởi tạo chỉ thực hiện duy nhất một lần. Tiếp đến, biểu thức logic được thực hiện để kiểm tra biến điều khiển với giá trị của số lần lặp. Nếu biểu thức logic có giá trị đúng thì vịng lặp tiếp tục thực hiện, ngược lại vòng lặp kết thúc. Sau cùng, biểu thức điều khiển lặp được thực hiện, thông thường biểu thức lặp dùng để tăng hoặc giảm giá trị của biến điều khiển.

Chương 3 Rẽ nhánh và vòng lặp

41/114 Trong phần khai báo và biểu thức lặp, chúng ta có thể sử dụng nhiều biến phân cách nhau bởi dấu phẩy và thứ tự thực hiện từ trái qua phải. Thứ tự thực hiện rất quan trọng nếu như giá trị của biểu thức thứ 2 phụ thuộc vào kết quả thực hiện. Đoạn mã dưới đây minh họa cách sử dụng vòng lặp for với phân cách nhiều biến khai báo:

Đoạn mã 6:

...... int i,j;

int max = 10;

System.out.println(“The sum of two variables for a table of 10 is: ”); for(i=0,j=max;i<=max;i++,j--) { System.out.println(“\n%d + %d = %d”,i,j,i+j); } ......

Trong đoạn mã trên, 3 biến i, j, max được khai báo. Biến max được gán giá trị bằng 10. Trong phần khởi tạo, biến i được gán bằng 0 và biến j được gán bằng max = 10. Ở đây chúng ta thấy 2 biến được khởi tạo giá trị phân cách bởi dấu phẩy. Biểu thức điều kiện; i<=max đảm bảo rằng vòng lặp thực hiện chừng nào i còn nhỏ hơn hoặc bằng max=10.Vòng lặp sẽ kết thúc khi biểu thức điều kiện trả về false (sai) có nghĩa lúc đó i = 11. Cuối cùng, biểu thức lặp cũng bao gồm 2 phép tính i++, j--. Sau mỗi bước lặp, i được tăng 1 đơn vị và j giảm 1 đơn vị. Tổng của 2 biến này luôn luôn bằng max và bằng 10 được in ra. Kết quả của đoạn mã trên như dưới đây:

The sum of two variables for a table of 10 is: 0 + 10 = 10

1 + 9 = 10 2 + 8 = 10 2 + 8 = 10 3 + 7 = 10 4 + 6 = 10 5 + 5 = 10 6 + 4 = 10 7 + 3 = 10 8 + 2 = 10 9 + 1 = 10 10 + 0 = 10

Như thảo luận trong phần trước, có 3 phần trong khai báo vịng lặp for, tuy nhiên bất kỳ một hoặc tất cả các phần trong khai báo for có thể để trống. Đoạn mã dưới đây minh họa cách sử dụng vịng lặp for khơng sử dụng phần khai báo:

Đoạn mã 7:

......

//Khởi tạo giá trị của biến num int num = 1;

for(; num != 40;num++) { System.out.println(“Enter a number: ”); num = input.nextInt(); } ......

Trong đoạn mã trên, biến num được người dùng nhập vào cho đến khi có giá trị bằng 40. Vịng lặp khơng có phần khởi tạo. Thay vào đó, num được khởi tạo ở ngồi phần khai báo vịng lặp. Biến num được tăng lên 1. Vòng lặp sẽ kết thúc

Chương 3 Rẽ nhánh và vòng lặp

43/114 khi num bằng 40. Nếu cả 3 phần để trống, vịng lặp sẽ lặp vơ tận. Đoạn mã dưới đây minh họa cách sử dụng đó:

Đoạn mã 8:

...... for( ; ; ) {

System.out.println(“This will go on and on”); }

......

Trong đoạn mã trên, dòng chữ “This will go on and on” được in cho đến khi

vòng lặp kết thúc. Câu lệnh break có thể dùng để kết thúc vịng lặp này. Đoạn mã trên dẫn đến vịng lặp vơ hạn, vịng lặp vơ hạn khiến chương trình chạy khơng giới hạn trong khoảng thời gian dài và sử dụng hết tài nguyên của hệ thống, điều này dẫn đến treo hệ thống. Trong thực tế, chúng ta nên tránh sử dụng loại vòng lặp kiểu này trong chương trình của mình.

Một phần của tài liệu Giáo án - Bài giảng: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA (Trang 40 - 43)