Thứ Sáu, 3 tháng 5, 2024

27. Vòng lặp For trong C++

 Đây là một vài ví dụ thực tế:


  • Khi bạn đăng nhập vào một trang web nào đó, thông thường bạn sẽ được hỏi user name và mật khẩu, nếu bạn nhập sai mật khẩu, chương trình sẽ cho phép bạn nhập lại ví dụ 3 lần, có nghĩa là màn hình đăng nhập sẽ lặp đi lặp lại 3 lần.
  • Màn hình của máy bán hàng tự động sẽ lặp đi lặp lại giống nhau, sau khi bạn chọn một món hàng nào đó và trả tiền, màn hình ban đầu sẽ hiện lên cho giao dịch tiếp theo.
  • Tương tự như máy bán hàng tự động, màn hình của một cây ATM cũng lặp đi lặp lại sau mỗi giao dịch.

Nói chung, rất nhiều chương trình yêu cầu chúng ta lặp đi lặp lại một đoạn code nào đó, và từ đó có khái niệm vòng lặp trong lập trình.

Vòng Lặp For giúp bạn thực hiện các câu lệnh nhiều lần tùy theo ý bạn muốn. Ví dụ bạn muốn in ra 1000 dòng chữ "Xin chào Dat Viet Lap Trinh" thì thay vì bạn viết 1000 câu lệnh printf bạn có thể viết 1 câu lệnh cout và cho nó lặp 1000 lần.

Cú pháp:

for (khoi_tao_bien ; check_dieu_kien ; tang/giam_bien) {  
    // Khối lệnh được thực thi
}

Cách vòng lặp For hoạt động :

  •     Câu lệnh khởi tạo được thực hiện 1 lần duy nhất khi bắt đầu vào vòng lặp
  •     Sau đó điều kiện lặp được kiểm tra, nếu đúng thì sẽ tiến thành thực hiện các câu lệnh trong for, sai sẽ không thực hiện và kết thúc vòng lặp
  •     Sau khi các câu lệnh trong vòng lặp được thực hiện xong thì tới phần câu lệnh cập nhật được thực thi
  •     Câu lệnh cập nhật được thực hiện xong sẽ tiếp tục kiểm tra điều kiện lặp và nếu đúng tiếp tục thực hiện code trong vòng lặp, sai sẽ kết thúc vòng lặp

 

Đây là một ví dụ đơn giản, nhập đoạn code sau vào IDE online và bấm Run để chạy chương trình,chương trình sẽ in 10 lần câu "Xin chao Dat Viet Lap Trinh!".



#include <iostream>
 
using namespace std;


int main(){
    int i;
    for(i = 1; i <= 10; i++){
        cout << "Xin chao Dat Viet Lap Trinh!"<< endl;
    }
    return 0;
}
 

Đây là kết quả chạy chương trình:


Vòng lặp For trong lập trình C++



Giải thích chương trình:

      Biến i được khởi tạo bằng 1, sau đó kiểm tra điều kiện i <= 10 sẽ đúng. Vòng lặp thực hiện lần thứ 1 và in Xin chao Dat Viet Lap Trinh!
    Biến i sau câu lệnh i++ sẽ có giá trị 2, kiểm tra điều kiện i <= 10 sẽ đúng. Vòng lặp thực hiện lần thứ 2 và in Xin chao Dat Viet Lap Trinh!
    Biến i sau câu lệnh i++ sẽ có giá trị 3, kiểm tra điều kiện i <= 10 sẽ đúng. Vòng lặp thực hiện lần thứ 3 và in Xin chao Dat Viet Lap Trinh!
    Biến i sau câu lệnh i++ sẽ có giá trị 4, kiểm tra điều kiện i <= 10 sẽ đúng. Vòng lặp thực hiện lần thứ 4 và in Xin chao Dat Viet Lap Trinh!
    Biến i sau câu lệnh i++ sẽ có giá trị 5, kiểm tra điều kiện i <= 10 sẽ đúng. Vòng lặp thực hiện lần thứ 5 và in Xin chao Dat Viet Lap Trinh!
    Biến i sau câu lệnh i++ sẽ có giá trị 6, kiểm tra điều kiện i <= 10 sẽ đúng. Vòng lặp thực hiện lần thứ 6 và in Xin chao Dat Viet Lap Trinh!
    Biến i sau câu lệnh i++ sẽ có giá trị 7, kiểm tra điều kiện i <= 10 sẽ đúng. Vòng lặp thực hiện lần thứ 7 và in Xin chao Dat Viet Lap Trinh!
    Biến i sau câu lệnh i++ sẽ có giá trị 8, kiểm tra điều kiện i <= 10 sẽ đúng. Vòng lặp thực hiện lần thứ 8 và in Xin chao Dat Viet Lap Trinh!
    Biến i sau câu lệnh i++ sẽ có giá trị 9, kiểm tra điều kiện i <= 10 sẽ đúng. Vòng lặp thực hiện lần thứ 9 và in Xin chao Dat Viet Lap Trinh!
    Biến i sau câu lệnh i++ sẽ có giá trị 10, kiểm tra điều kiện i <= 10 sẽ đúng. Vòng lặp thực hiện lần thứ 10 và in Xin chao Dat Viet Lap Trinh!
    Biến i sau câu lệnh i++ sẽ có giá trị 11, kiểm tra điều kiện i <= 10 sẽ sai. Vòng lặp kết thúc giá trị 11, kiểm tra điều kiện i <= 11 sẽ có giá trị sai. Vòng lặp kết thúc  

 

Luồng điều khiển trong vòng lặp for:

  • Bước khoi_tao_bien được thực thi đầu tiên, và chỉ một lần. Bước này cho phép bạn khai báo và khởi tạo bất kỳ biến điều khiển vòng lặp nào. Bạn cũng có thể không cần phải đặt một khai báo ở đây, miễn là khai báo dấu chấm phảy (;).
  • Tiếp theo, check_dieu_kien được đánh giá. Nếu nó là true, phần thân của vòng lặp được thực thi. Nếu nó là false, phần thân của vòng lặp không thực thi và luồng điều khiển nhảy đến câu lệnh kế tiếp ngay sau vòng lặp for.
  • Sau khi phần thân của vòng lặp for được thực thi, luồng điều khiển nhảy ngược lại lên câu lệnh tang/giam_bien. Câu lệnh này cho phép bạn cập nhật bất kỳ biến điều khiển vòng lặp nào. Câu lệnh này có thể để trống, miễn là khai báo dấu chấm phảy (;)
  • check_dieu_kien được đánh giá lại. Nếu nó là true, vòng lặp thực hiện và quá trình lặp lại chính nó (phần thân của vòng lặp, sau đó là bước tang/giam_bien, và sau đó lại check_dieu_kien). Sau khi điều kiện là false, vòng lặp for kết thúc.

 

 
Phần tiếp theo


Phần trước

Không có nhận xét nào:

Đăng nhận xét