Tất cả các chương trình có vòng lặp for mà chúng tôi đã viết cho đến nay không thể được gọi là phổ quát. Vì chúng ta tự đặt số lần lặp lại của thân vòng lặp.
Nhưng nếu số lần lặp lại phụ thuộc vào một số giá trị khác thì sao? Ví dụ: bản thân người dùng muốn đặt số lần lặp lại chu kỳ.
Phải làm gì trong trường hợp này?
Mọi thứ đều rất đơn giản. Thay vì các giá trị bắt đầu và kết thúc bằng số, chúng ta có thể sử dụng bất kỳ biến nào mà người dùng có thể tính toán hoặc đặt.
Ví dụ, chúng ta cần hiển thị bình phương của các số từ 1 đến N, trong đó giá trị của biến N được người dùng nhập từ bàn phím.
Chương trình sẽ như thế này:
#include <iostream>
sử dụng không gian tên std;
chủ yếu()
{
int i,N; // tôi – biến vòng lặp, N - số tối đa mà chúng tôi tính bình phương
cin>> N; // nhập N từ bàn phím
for ( i = 1; i <= N; i++) // vòng lặp: for all i from 1 to N - biến i sẽ tuần tự lấy giá trị từ 1 đến N
{
cout << "Kvadrat chisla "<<i<<" con quạ " <<i*i<<"\n"; // Xuất bình phương của một số ở định dạng cụ thể và di chuyển xuống một dòng mới
}
}
Khi vào vòng lặp, câu lệnh i = 1 được thực thi, sau đó biến i được tăng lên một (i ++) theo mỗi bước. Vòng lặp được thực hiện khi điều kiện i <= N là đúng. Trong phần thân của vòng lặp, câu lệnh xuất duy nhất sẽ in chính số đó và hình vuông của nó trên màn hình theo định dạng đã chỉ định.
Để tính bình phương hoặc các số mũ thấp khác, tốt hơn là sử dụng phép nhân.
Chạy chương trình và xem kết quả công việc của nó với các giá trị khác nhau của biến N.
Problem
Chạy chương trình để thực thi, xem kết quả làm việc của nó với các giá trị khác nhau của biến N
Phân tích đầu ra trong cửa sổ kết quả kiểm tra chương trình
Lưu ý rằng với N=0 (kiểm tra #4), chương trình không xuất ra bất kỳ thứ gì, vì điều kiện i<=N ngay lập tức sai trong lần đầu tiên vòng lặp được thực thi (1<=0 là điều kiện sai), vì vậy thân vòng lặp không được thực thi cùng một lúc!