Vòng lặp trong C++

Có một tình huống mà bạn cần phải thực hiện một đoạn code một vài lần. Nhìn chung, các câu lệnh được thực hiện một cách tuần tự. Câu lệnh trước nhất của hàm được thực hiện trước, sau đó đến câu thứ 2 & tiếp tục.

Từ ngữ lập trình phân phối cho tất cả chúng ta nhiều kết cấu điều khiển & cho phép bạn thực hiện những phần cầu kỳ.

Vòng lặp cho phép thực hiện một lệnh & một nhóm lệnh nhiều lần, dưới đây là dạng tổng quát:

₵++ suport vòng lặp sau đây. Nhấp chuột vào backlink để xem cụ thể.

Vòng lặpMiêu tả

Vòng lặp while trong ₵++

Lặp lại một hoặc một nhóm các lệnh trong khi điều kiện đã cho rằng đúng. Nó kiểm soát điều kiện trước khi thực hiện thân vòng lặp.

Vòng lặp for trong ₵++

Thực thi một dãy các lệnh nhiều lần & tóm lược đoạn code mà làm chủ biến vòng lặp.

Vòng lặp do…while trong ₵++

Giống lệnh While, loại trừ ở điểm là nó kiểm soát điều kiện ở cuối thân vòng lặp.

Lồng vòng lặp trong ₵++

Bạn có thể sử dụng một hoặc nhiều vòng lặp trong các vòng lặp while, for hoặc do..while khác.

Vòng lặp while trong ₵/₵++

Một lệnh vòng lặp while trong Từ ngữ chương trình ₵/₵++ thực hiện lặp đi lặp lại một lệnh mục tiêu đến lúc nào điều kiện đã cho đang là đúng.

Cú pháp

Cú pháp của vòng lặp while trong Từ ngữ chương trình ₵/₵++ là:

while(dieu_kien) 
{ 
  cac_lenh; 
}

Bước này, cac_lenh có thể là lệnh đơn hoặc một khối các lệnh. dieu_kien có thể là bất kỳ biểu thức nào, & giá trị true là bất kỳ giá trị nào khác 0. Vòng lặp lặp đi lặp lại trong khi dieu_kien là true.

Khi điều kiện trở thành false, chương trình điều khiển ngay mau chóng chuyển tới dòng lệnh ngay sau vòng lặp.

Sơ đồ

Bước này, điểm chính của vòng lặp while là nó có thể không chạy. Bởi vì khi kiểm soát điều kiện & kết quả là false, phần thân vòng lặp được bỏ qua & lệnh trước nhất ngay sau vòng lặp sẽ được thực thi.

Chẳng hạn

#include <iostreamvàgt; 
using namespace std; 
int main () 
{ 
   // Khai bao bien cuc bo: 
   int α = 4; 
   // vong lap while 
   while(α < 10) 
   { 
      cout << "Gia tri cua a la: " << α << endl; 
      α++; 
   } 
return 0; 
}

Chạy chương trình ₵/₵++ trên sẽ cho kết quả như hình sau:

Vòng lặp for trong ₵++

Vòng lặp for trong ₵++ là một kết cấu điều khiển lặp đi lặp lại mà cho phép bạn viết một vòng lặp một cách hiệu quả, mà cần thực hiện trong một khoảng thời gian rõ ràng nào đó.

Cú pháp

Cú pháp của một vòng lặp for trong Từ ngữ chương trình ₵++ là:

for (bien; dieu_kien; tang_giam) 
{ 
  cac_lenh; 
}

Dưới đây là diễn tả dòng điều khiển trong một vòng lặp for:

Bước bien được thực hiện trước nhất & chỉ một lần. Ở đây cho phép bạn khai báo & khởi tạo bất kỳ biến điều khiển vòng lặp nào. Bạn không được yêu cầu để đặt một lệnh bước này, miễn là một dấu chấm phảy hiện ra.

Xem Thêm  Danh sách ngôn ngữ mã quốc gia - trong mã ngôn ngữ id

Kế tiếp, dieu_kien được ước lượng. Nếu điều kiện là true, phần thân vòng lặp được thực thi. Nếu nó là false, phần thân vòng lặp không được thực thi & dòng điều khiển nhảy tới lệnh kế tiếp ngay sau vòng lặp for.

Sau thời điểm phần thân vòng lặp for thực thi, dòng điều khiển nhảy tới lệnh tang_giam. Lệnh này cho phép bạn update bất kỳ biến điều khiển vòng lặp nào. Lệnh này có thể để trống, miễn là một dấu chấm phảy hiện ra sau điều kiện.

dieu_kien lúc này được ước lượng lần nữa. Nếu là true, vòng lặp thực thi & công cuộc lặp đi lặp lại chính nó (phần thân vòng lặp, sau này là tang_giam, & sau đó kiểm soát điều kiện lần nữa). Sau thời điểm điều kiện trở thành false, vòng lặp for chấm dứt.

Sơ đồ:

Chẳng hạn:

#include <iostreamvàgt; 
using namespace std; 
int main () 
{ 
    //Vòng lặp for 
    for(int α = 5; α < 15; α = α + 1) 
      { 
         cout << "Gia tri cua a la: " << α << endl; 
      } 
return 0; 
}

Chạy chương trình ₵++ trên sẽ cho kết quả như hình sau:

Vòng lặp do…while trong ₵++

Không giống như các vòng lặp for & while, mà kiểm soát điều kiện vòng lặp ở ngay bước trước nhất của vòng lặp, vòng lặp do…while trong Từ ngữ ₵++ kiểm soát điều kiện của nó tại phần cuối của vòng lặp.

Một vòng lặp do…while là cũng giống như vòng lặp while, loại trừ ở điểm một vòng lặp do…while đảm bảo thực hiện vòng lặp tối thiểu một lần.

Cú pháp

Cú pháp của một vòng lặp do…while trong Từ ngữ chương trình ₵++ là:

do {cac_lenh;}
while(dieu_kien);

Bạn Note rằng, biểu thức điều kiện hiện ra ở cuối cùng của vòng lặp, vì vậy các lệnh trong vòng lặp thực hiện một lần trước khi điều kiện được kiểm soát.

Nếu điều kiện là true, dòng điều khiển vòng lặp quay trở lại, & các lệnh trong vòng lặp được thực hiện lần nữa. Công cuộc này lặp đi lặp lại tới lúc nào điều kiện đã cho trở thành false.

Sơ đồ

Chẳng hạn:

#include <iostreamvàgt; 
using namespace std; 
int main () 
{ 
   // Khai bao bien cuc bo: 
   int α = 5; 
   // Vong lap do...while 
   do 
      { 
        cout << "Gia tri cua a la: " << α << endl; 
        α = α + 1; 
      }while( α < 15 ); 
return 0; 
}

Chạy chương trình ₵++ trên sẽ cho kết quả như hình sau:

Lồng vòng lặp trong ₵++

Từ ngữ chương trình ₵++ cho phép bạn sử dụng một vòng lặp bên trong một vòng lặp. Dưới đây là một số chẳng hạn minh họa định nghĩa này.

Cú pháp

Cú pháp để lồng vòng lặp for trong ₵++ như sau:

for (bien; dieu_kien; tang_giam) 
{ 
   for (bien; dieu_kien; tang_giam) 
   { 
      cac_lenh;
   } 
   cac_lenh; 
   // ban co the dat nhieu lenh tai day. 
}

Cú pháp để lồng vòng lặp while trong ₵++ như sau:

while(dieu_kien) 
{ 
   while(dieu_kien) 
   { 
      cac_lenh; 
   } 
   cac_lenh; 
   // ban co the dat nhieu lenh tai day. 
}

Cú pháp để lồng vòng lặp do…while trong ₵++ như sau:

do 
{ 
   cac_lenh; 
   // ban co the dat nhieu lenh tai day. 
   do 
   { 
      cac_lenh; 
   }while(dieu_kien); 
}while(dieu_kien);

Chẳng hạn

Xem Thêm  Phương thức JavaScript Array indexOf () - chỉ số của mảng js

Chương trình sau sử dụng lồng vòng lặp for để tìm các số nguyên tố từ 2 đến 50:

#include <iostreamvàgt; 
using namespace std; 
int main () 
{
   int ι, j; 
   for(ι=2; ivàlt;50; ι++) { 
      for(j=2; j <= (ι/j); j++) 
         if(!(iphần trămj)) break; // neu tim thay he so, thi khong la so nguyen to 
         if(j > (ι/j)) cout << ι << " la so nguyen ton"; 
   } 
return 0; 
}

Chạy chương trình ₵++ trên sẽ cho kết quả như hình sau:

Các lệnh điều khiển vòng lặp trong ₵++

Các lệnh điều khiển vòng lặp biến đổi sự thực thi lệnh từ dãy thông thường của nó. Khi sự thực thi lệnh rời khỏi một phạm vi, toàn bộ các đối tượng auto mà được tạo thành trong phạm vi đó bị hủy.

₵++ suport các lệnh điều khiển vòng lặp sau đây. Click vào các đường backlink sau để biết thêm cụ thể.

Lệnh điều khiểnMiêu tả

Lệnh break trong ₵++

Chấm dứt vòng lặp hoặc lệnh switch & chuyển sang thực thi vòng lặp hoặc lệnh switch ngay sau nó.

Lệnh continue trong ₵++

Khi gặp lệnh này thì chương trình sẽ bỏ qua các câu lệnh ở dưới nó (trong cùng một câu lệnh lặp) để thực hiện vòng lặp mới.

Lệnh goto trong ₵++

Chuyển tới lệnh được gán. Dù rằng vậy, nó được khuyên rằng không nên sử dụng lệnh goto trong chương trình của các bạn.

Lệnh break trong ₵++

Lệnh break trong ₵++ có hai cách dùng:

Khi lệnh break được sử dụng trong vòng lặp, vòng lặp ngay mau chóng chấm dứt & điều khiển chương trình khởi đầu lệnh kế tiếp sau vòng lặp.

Nó có thể được sử dụng trong lệnh switch (sẽ được nhắc đến trong chương tới).

Nếu bạn đang sử dụng các vòng lặp lồng nhau (chẳng hạn, một vòng lặp bên trong vòng lặp khác), lệnh break sẽ dừng thực thi một lệnh nào đó trong một vòng lặp & khởi đầu thực thi lệnh kế tiếp của đoạn code sau khối code đó.

Cú pháp

Cú pháp của lệnh break trong ₵++ như sau:

break

;

Sơ đồ

Chẳng hạn

#include <iostreamvàgt; 
using namespace std; 
int main () 
{ 
   // Khai bao bien cuc bo: 
   int α = 10; 
   // Vong lap do...while 
   do 
   { 
      cout << "Gia tri cua a la: " << α << endl; 
      α = α + 1; 
      if(α > 15) 
      { 
         // Ket thuc vong lap 
         break; 
      } 
   }while(α < 20); 
   return 0; 
}

Chạy chương trình ₵++ trên sẽ cho kết quả như hình sau:

Lệnh continue trong ₵++

Lệnh continue trong ₵++ làm việc hơi giống với lệnh break. Thay vì bắt buộc chấm dứt, nó bắt buộc vòng lặp kế tiếp diễn ra, bỏ qua bất kỳ đoạn code nào ở giữa.

Với vòng lặp for, lệnh continue khiến cho bước kiểm soát điều kiện & phần tang_giam của vòng lặp thực thi. Với while & do…while, lệnh continue làm điều khiển chương trình chuyển tới các kiểm soát điều kiện.

Cú pháp

Cú pháp của lệnh continue trong ₵++ như sau:

continue

;

Sơ đồ

Xem Thêm  Lặp lại mảng JavaScript - lặp lại mảng trong javascript

Chẳng hạn

#include <iostreamvàgt; 
using namespace std; 
int main () 
{ 
    // Khai bao bien cuc bo:   
    int α = 10; 
    // vong lap do...while 
    do 
    { 
       if(α == 15) 
       { 
          // nhay qua buoc lap. 
          α = α + 1; 
          continue; 
       } 
       cout << "Gia tri cua a la: " << α << endl; 
       α = α + 1; 
    }while(α < 20); 
    return 0; 
}

Chạy chương trình ₵++ trên sẽ cho kết quả như hình sau:

Lệnh goto trong ₵++

Lệnh goto trong Từ ngữ chương trình ₵++ phân phối một bước nhảy không điều kiện từ lệnh goto tới lệnh được gán nhãn trong cùng một hàm.

Chú thích: Sử dụng lệnh goto gây khổ cực cho bất kỳ ngôn từ chương trình nào bởi vì nó gây khổ cực cho việc theo dấu dòng điều khiển của một chương trình, khiến cho chương trình khó để hiểu & khó để cân chỉnh. Bất kỳ chương trình nào sử dụng một lệnh goto có thể được viết lại để có thể không cần lệnh goto này.

Cú pháp

Cú pháp của lệnh goto trong ₵++ như sau:

goto label; 
.. 
. 
label: lenh;

Bước này, label có thể là bất kỳ phần thuần văn bản nào loại trừ các keyword trong ₵++, & nó có thể được setup bất cứ nơi đâu trong chương trình ₵++, bên trên hoặc dưới lệnh goto này.

Sơ đồ

Chẳng hạn

#include <iostreamvàgt; 
using namespace std; 
int main () 
{ 
    // Khai bao bien cuc bo: 
    int α = 10; 
    // Vong lap do...while 
    VONGLAP:do     // tai day lable la VONGLAP, va lenh la do 
    { 
        if(α == 15) 
        { 
           // nhay qua buoc lap. 
           α = α + 1; 
           goto VONGLAP; 
        } 
        cout << "Gia tri cua a la: " << α << endl; 
        α = α + 1; 
    }while(α < 20); 
    return 0; 
}

Chạy chương trình ₵++ trên sẽ cho kết quả như hình sau:

Một sự sử dụng tốt của lệnh goto là để thoát khỏi một vòng lặp sâu. Chẳng hạn, bạn xét code sau:

for(...) { 
    for(...) { 
        while(...) { 
            if(...) goto stop; 
            . 
            . 
            . 
         } 
     } 
} 
stop: 
cout << "Xuat hien loi trong chuong trinh.n";

Với việc không có goto, chương trình sẽ thực hiện thêm nhiều kiểm nghiệm bổ sung. Trong lúc đó, một lệnh break sẽ không nên được dùng bước này, bởi vì nó sẽ chỉ làm chương trình thoát khỏi vòng lặp trong cùng.

Vòng lặp vô hạn trong ₵++

Một vòng lặp là vòng lặp vô hạn khi một điều kiện không lúc nào false. Vòng lặp for hay được dùng cho mục đích này. Khi bạn để ba biểu thức điều kiện trong vòng lặp for trống thì bạn sẽ tạo thành một vòng lặp vô hạn.

#include <iostreamvàgt; 
using namespace std; ι
nt main () 
{ 
     for( ; ; ) 
     { 
          printf("Vong lap nay se chay mai mai.n"); 
     } 
     return 0; 
}

Khi biểu thức điều kiện vắng mặt, nó được giả sử là luôn đúng. Bạn có thể có một biểu thức khởi tạo & biểu thức tăng, giảm, nhưng các lập trình viên ₵++ thường sử dụng for(;;) để biểu thị một vòng lặp vô hạn.

Chú thích: Bạn có thể dừng (chấm dứt) một vòng lặp vô hạn bởi nhấn Ctrl + ₵.

Theo Tutorialspoint

Bài trước: Toán tử trong ₵++

Bài tiếp: Điều khiển luồng trong ₵++

Viết một bình luận