STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • Bình luận
    • Sao chép

    Vòng Lặp For trong C++

    Tìm hiểu về cách thức hoạt động của cấu trúc lặp for trong C++.

    Rye Nguyen

    29/07/2015
    06/09/2020
    3 phút đọc
    Vòng Lặp For trong C++

    Cấu trúc lặp

    Khi cần thực hiện một đoạn chương trình nhiều lần liên tiếp, có 2 cách:

    • Copy đoạn chương trình đó cho đủ số lần cần thiết.
    • Sử dụng cấu trúc lặp, viết một lần và sử dụng nhiều lần.

    Dễ dàng nhận thấy cách 1 có quá nhiều nhược điểm. Khi đó chương trình sẽ có độ dài “cực khủng”, dẫn đến quá trình build mất nhiều thời gian. Mặt khác, thời gian để sao chép đoạn chương trình đó ra nhiều lần cũng không hề ít. Hơn nữa sau này khi nâng cấp dự án sẽ mất rất nhiều thời gian do chương trình không linh hoạt và khó quản lý. Chưa kể đến trường hợp khi phát hiện ra một đoạn code bị sai, phải sửa thủ công hàng loạt các đoạn code khác.

    Do đó, cấu trúc lặp sẽ là giải pháp tối ưu và phù hợp trong trường hợp này. Nguyên tắc của cấu trúc lặp là “Viết một lần và sử dụng nhiều lần”, do đó sẽ khắc phục được những nhược điểm kể trên.

    Cấu trúc for

    Cấu trúc for trong C/C++ có prototype như sau:

    for(Initialization statement; Condition; Update statement)
    {
        //Code while condition is true
    }

    Trong đó:

    • Initialization statement là biểu thức khởi tạo các giá trị ban đầu cho các tham số. Các tham số này dùng để kiểm tra điều kiện trong biểu thức Condition.
    • Condition là biểu thức điều kiện của vòng lặp. Vòng lặp sẽ kết thúc khi biểu thức này trả về giá trị false.
    • Update statement là biểu thức cập nhật giá trị cho các tham số.

    Ngoài ra, nếu phần code trong vòng lặp for chỉ có 1 dòng, ta có thể bỏ cặp dấu { }.

    Nguyên tắc hoạt động

    Bắt đầu với việc khởi tạo giá trị ban đầu cho các biến, quá trình lặp sẽ diễn ra liên tục, cho tới khi biểu thức Condition không còn đúng nữa. Các biến sẽ được cập nhật trong phần Update statement hoặc cả ở trong vòng lặp (nếu có).

    Sơ đồ hoạt động của cấu trúc for như sau:

    Một số lưu ý

    Vòng lặp sẽ kết thúc khi và chỉ khi biểu thức điều kiện trả về giá trị false, do đó cần lưu ý biểu thức Update statement để thu được kết quả mong muốn.

    Sau dòng lệnh for không có dấu “;”, nếu có chương trình sẽ báo lỗi hoặc cho kết quả không mong muốn.

    Các biến nếu được khai báo trong dòng lệnh for sẽ chỉ có phạm vi sử dụng trong vòng lặp. Cũng giống như các biến được khai báo trong một scope thì chỉ có phạm vi sử dụng trong scope đó.

    Các biểu thức Initialization statement, Condition và Update statement có thể có hoặc không, nhưng bắt buộc phải có đủ hai dấu ;. Khi vắng mặt các biểu thức đó thì phải tự định nghĩa chúng để tránh chương trình bị lặp vô hạn. Tuy nhiên, ngoại trừ các trường hợp đặc biệt, nên định nghĩa các biểu thức đó trong dòng lệnh for để tạo tính nhất quán và chuẩn mực chung của các lập trình viên.

    Để dừng vòng lặp một cách ép buộc (force exit), ta sử dụng lệnh break. Lệnh này cần được đặt bên trong đoạn code của vòng lặp. Ngoài ra còn có lệnh continue để bỏ qua lần lặp hiện tại và thực hiện lần lặp kế tiếp.

    Chương trình minh hoạ:

    #include <stdio.h>
    
    int main()
    {
    	int s1 = 0;
    	for (int i = 0; i < 10; i++)	//Full type
    		s1 += i;
    	printf("%d\n", s1);
    
    	int s2 = 0;
    	for (int j = 0;;j++)
    	{
    		if (j % 2 == 0)
    		{
    			s2 += j;
    		}
    
    		if (j > 20)	//Condition
    		{
    			break;
    		}
    	}
    	printf("%d\n", s2);
    
    	int s3 = 0;
    	int k = 0;		//Initialization
    	for (;;)			
    	{
    		if (k % 3 == 0)
    		{
    			continue;
    		}
    		
    		if (s3 > 100)	//Condition
    		{
    			break;
    		}
    
    		s3 += k;
    		k++;		//Update
    	}
    	printf("%d\n", s3);
    
    	return 0;
    }
    
    Modern C++

    Modern C++

    STDIO Training - Đào Tạo Lập Trình C++.

    Phù hợp cho bạn

    Đề xuất

    Một Số Lệnh Điều Khiển Vòng Lặp trong Python

    Một Số Lệnh Điều Khiển Vòng Lặp trong Python

    Một số lệnh để điều khiển vòng lặp trong Python

    PythonCơ bản

    19/03/2015

    Vòng Lặp for trong Python

    Vòng Lặp for trong Python

    Tìm hiểu và sử dụng cấu trúc vòng lặp for trong Python.

    PythonCơ bản

    19/03/2015

    Khám phá thêm

    Vòng Lặp For trong JavaScript

    Vòng Lặp For trong JavaScript

    Tìm hiểu và sử dụng các cú pháp vòng lặp bao gồm while, break, continue, ...

    JavaScriptCơ bản

    28/07/2020

    Vòng Lặp While trong JavaScript

    Vòng Lặp While trong JavaScript

    Tìm hiểu và sử dụng các cú pháp vòng lặp bao gồm while, break, continue, ...

    JavaScriptCơ bản

    20/07/2020

    9 Tính Năng Quan Trọng Trong C++11

    9 Tính Năng Quan Trọng Trong C++11

    C++11 là một phiên bản cải tiến và nâng cấp từ C++98 (hay các bạn vẫn ...

    Modern C++C++0x

    13/08/2015

    Vòng Lặp while trong Python

    Vòng Lặp while trong Python

    Tìm hiểu và sử dụng cấu trúc vòng lặp while trong Python.

    PythonCơ bản

    19/03/2015

    Bản Chất Của Biến Trong C/C++

    Bản Chất Của Biến Trong C/C++

    Tìm hiểu về bản chất của biến trong C++.

    Modern C++C++98

    16/01/2015

    Vòng Lặp foreach Trong PHP

    Vòng Lặp foreach Trong PHP

    Tìm hiểu về cấu trúc vòng lặp foreach trong PHP.

    PHPCheat Sheet

    06/11/2016

    Cấu Trúc Lặp Trong PHP

    Cấu Trúc Lặp Trong PHP

    Tìm hiểu về các cấu trúc lặp trong PHP.

    PHPCheat Sheet

    11/11/2016

    Struct Trong Lập Trình C Và Tư Duy Trừu Tượng Hoá

    Struct Trong Lập Trình C Và Tư Duy Trừu Tượng Hoá

    Ứng dụng và tư duy trừa tượng hoá của struct trong lập trình C/C++.

    Modern C++C++98

    11/08/2015

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020