post-image

Vòng lặp for

Câu lệnh lặp

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++)
cout << 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++)
cout << 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);

Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

Your email address will not be published. Required fields are marked *