Vòng for là cấu trúc hỗ trợ việc viết các vòng lặp mà số lần lặp
được kiểm soát bằng biến đếm. Chẳng hạn, đoạn mã giả sau đây mô tả thuật toán
in ra các số từ 1 đến number:
Làm nhiệm vụ sau đây đối với mỗi giá trị của count từ 1 đến
number:
In count
ra màn hình
Đoạn mã giả đó có thể được viết bằng vòng for như sau:
for (count = 1; count <= number;
count++)
System.out.print(count + ", ");
Với number có giá trị bằng 3, đoạn trình trên cho kết quả in
ra màn hình là: 1, 2, 3,
Cấu trúc tổng quát của vòng lặp for là:
for ( khởi_tạo; điều_kiện_lặp; cập_nhật)
thân_vòng_lặp
Trong đó, biểu thức khởi_tạo thường khởi tạo con đếm điều khiển
vòng lặp, điều_kiện_lặp xác định xem thân vòng lặp có nên chạy tiếp hay không (điều
kiện này thường chứa ngưỡng cuối cùng của con đếm), và biểu thức cập_nhật làm
tăng hay giảm con đếm. Cũng tương tự như ở các cấu trúc if, while..., nếu
thân_vòng_lặp có nhiều hơn một lệnh thì cần phải bọc nó trong một cặp ngoặc {
}. Lưu ý rằng cặp ngoặc đơn bao quanh bộ ba khởi_tạo, điều_kiện_lặp, cập_nhật,
cũng như hai dấu chấm phảy ngăn cách ba thành phần đó, là các thành bắt buộc của
cú pháp cấu trúc for. Ba thành phần đó cũng có thể là biểu thức rỗng nếu cần
thiết, nhưng kể cả khi đó vẫn phải có đủ hai dấu chấm phảy.
Ta có thể khai báo biến ngay trong phần khởi_tạo của vòng for,
chẳng hạn đối với biến con đếm. Nhưng các biến được khai báo tại đó chỉ có hiệu
lực ở bên trong cấu trúc lặp. Ví dụ:
for (int count = 1; count <= number;
count++)
System.out.print(count + ", ");
Ví dụ
Ví dụ sau minh họa cách sử dụng vòng lặp for để tính điểm
trung bình từ điểm của 10 môn học (số môn học lưu trong biến subjects). Người
dùng sẽ được yêu cầu nhập từ bàn phím điểm số của 10 môn học trong khi chương
trình cộng dồn tổng của 10 điểm số này. Công việc mà chương trình cần lặp đi lặp
lại 10 lần là: nhập điểm của một môn học, cộng dồn điểm đó vào tổng điểm. Đầu
tiên vòng for sẽ tiến hành bước khởi tạo với mục đích chính là khởi tạo biến đếm.
Việc khởi tạo chỉ được tiến hành duy nhất một lần. Trong ví dụ này, biến count
được khai báo ngay tại vòng for và khởi tạo giá trị bằng 0. Tiếp theo vòng for
sẽ tiến hành kiểm tra điều kiện lặp count < subjects. Nếu điều kiện sai,
vòng lặp for sẽ kết thúc. Nếu điều kiện đúng, thân vòng lặp for sẽ được thực hiện
(nhập một giá trị kiểu float rồi cộng dồn vào biến sum). Sau đó là bước cập nhật
với nhiệm vụ tăng biến đếm thêm 1. Kết quả là vòng lặp sẽ chạy 10 lần với các
giá trị count bằng 0, 1, .., 9 (khi count nhận giá trị 10 thì điều kiện lặp
không còn đúng và vòng lặp kết thúc).
float sum = 0;
int subjects = 10;
Scanner input = new Scanner(System.in);
System.out.print( "Enter the marks for
" + subjects + " subjects: ");
for (int count = 0; count < subjects;
count++) {
float mark;
mark = input.nextFloat();
sum += mark;
}
System.out.print("Average mark = "
+ sum/subjects);
إرسال تعليق