Vòng lặp trong lập trình
Hãy tưởng tượng một tình huống mà chúng ta cần hiển thị cùng một từ trên màn hình, hãy nói từ "HELLO", 10 lần. Chúng ta nên làm gì?
Bạn có thể lấy và viết 10 lần
cout << "Xin chào";
Nhưng nếu bạn không cần 10 lần mà là 20, 30, 40 lần thì sao ?, và nếu 200 lần thì sao? Trong trường hợp này, việc sao chép sẽ mất rất nhiều thời gian. Và nếu người dùng cần chọn số lần hiển thị thông tin trên màn hình?
Để giải quyết nhiệm vụ này, chúng tôi sẽ sử dụng một cấu trúc đặc biệt có tên là
vòng lặp.
Vòng lặplà cấu trúc thuật toán trong đó một chuỗi lệnh nhất định được lặp lại nhiều lần.< /div>
Trong ngôn ngữ lập trình C++, có hai loại vòng lặp: vòng lặp biến (
for
) và vòng lặp điều kiện (
while
and
do...while mã >)
Hãy bắt đầu làm quen với các chu kỳ từ loại đầu tiên.
Vòng lặp có biến (đối với)
Điều thường xảy ra là chúng ta biết số lần lặp lại của một số hành động hoặc chúng ta có thể tính toán số lần lặp lại bằng cách sử dụng dữ liệu mà chúng ta biết. Một số ngôn ngữ lập trình có lệnh mà trong tiếng Nga nghe giống như repeat(number of times)
, cho biết chính xác số lần lặp lại trong ngoặc.
Thật thú vị khi xem chu trình này hoạt động như thế nào ở cấp độ máy:
1. một ô nhớ nhất định được cấp phát trong bộ nhớ và số lần lặp lại được ghi vào ô nhớ đó;
2. khi chương trình thực hiện thân vòng lặp một lần, nội dung của ô này (bộ đếm) sẽ giảm đi một;
3. Quá trình thực hiện vòng lặp kết thúc khi ô này bằng 0.
Không có cấu trúc như vậy trong ngôn ngữ lập trình C++, nhưng có cấu trúc for
.
Dạng tổng quát của câu lệnh lặp for như sau:
cho (/*biểu thức1*/; /*biểu thức2*/; /*biểu thức3*/ )
{
/*một câu lệnh hoặc khối câu lệnh - thân vòng lặp*/;
}
Thiết kế này yêu cầu chúng tôi:
1. cấp phát rõ ràng một ô nhớ sẽ là một bộ đếm và thiết lập giá trị ban đầu của nó;
2. một điều kiện được viết theo đó thân vòng lặp sẽ được thực thi;
3. Chỉ định giá trị trong ô này sẽ thay đổi như thế nào.
Trong phần thực hành, chúng tôi sẽ cố gắng hiển thị từ "Xin chào
"
10 lần. Trong các nhiệm vụ tiếp theo, chúng tôi sẽ phân tích cấu trúc này chi tiết hơn.