Cách làm việc với các vòng lặp trong C

Giới thiệu về C vòng lặp for, while và do-while

C cung cấp cho chúng ta ba cách để thực hiện một vòng lặp:cho vòng lặp,vòng lặp trong khivòng lặp làm trong khi. Tất cả chúng đều cho phép bạn lặp lạimảng, nhưng với một vài khác biệt. Chúng ta hãy xem chúng trong chi tiết.

Đối với các vòng lặp

Cách đầu tiên và có lẽ là phổ biến nhất để thực hiện một vòng lặp làcho vòng lặp.

Sử dụngfortừ khóa chúng ta có thể xác địnhquy tắccủa vòng lặp lên phía trước, và sau đó cung cấp khối sẽ được thực thi lặp đi lặp lại.

Như thế này:

for (int i = 0; i <= 10; i++) {
  /* instructions to be repeated */
}

Các(int i = 0; i <= 10; i++)khối chứa 3 phần của chi tiết vòng lặp:

  • điều kiện ban đầu (int i = 0)
  • các bài kiểm tra (i <= 10)
  • gia số (i++)

Đầu tiên chúng ta xác định một biến vòng lặp, trong trường hợp này có tên lài.ilà một tên biến phổ biến được sử dụng cho các vòng lặp, cùng vớijcho các vòng lặp lồng nhau (một vòng lặp bên trong một vòng lặp khác). Nó chỉ là một quy ước.

Biến được khởi tạo ở giá trị 0 và lần lặp đầu tiên được thực hiện. Sau đó, nó được tăng dần khi phần tăng cho biết (i++trong trường hợp này, tăng 1), và tất cả chu kỳ lặp lại cho đến khi bạn đến số 10.

Bên trong khối chính của vòng lặp, chúng ta có thể truy cập vào biếniđể biết chúng ta đang ở lần lặp nào. Chương trình này sẽ in0 1 2 3 4 5 5 6 7 8 9 10:

for (int i = 0; i <= 10; i++) {
  /* instructions to be repeated */
  printf("%u ", i);
}

Các vòng lặp cũng có thể bắt đầu từ một số cao và đi đến một số thấp hơn, như sau:

for (int i = 10; i > 0; i--) {
  /* instructions to be repeated */
}

Bạn cũng có thể tăng biến vòng lặp lên 2 hoặc một giá trị khác:

for (int i = 0; i < 1000; i = i + 30) {
  /* instructions to be repeated */
}

Vòng lặp While

Vòng lặp Whileviết đơn giản hơnforvòng lặp, vì nó đòi hỏi bạn phải làm việc nhiều hơn một chút.

Thay vì xác định tất cả dữ liệu vòng lặp trước khi bạn bắt đầu vòng lặp, giống như bạn làm trongforvòng lặp, sử dụngwhilebạn chỉ cần kiểm tra một điều kiện:

while (i < 10) {

}

Điều này giả định rằngiđã được xác định và khởi tạo với một giá trị.

Và vòng lặp này sẽ là mộtvòng lặp vô hạntrừ khi bạn tăngibiến tại một số điểm bên trong vòng lặp. Một vòng lặp vô hạn là xấu vì nó sẽ chặn chương trình, không thể xảy ra bất cứ điều gì khác.

Đây là những gì bạn cần cho một vòng lặp while "đúng":

int i = 0;

while (i < 10) { /* do something */

i++; }

Có một ngoại lệ cho điều này và chúng ta sẽ xem nó sau một phút. Trước đây, hãy để tôi giới thiệudo while.

Thực hiện các vòng lặp trong khi

Mặc dù các vòng lặp là rất tốt, nhưng có thể có những lúc bạn cần làm một điều cụ thể: bạn muốn luôn thực thi một khối, và sau đócó lẽlặp lại nó.

Điều này được thực hiện bằng cách sử dụngdo whiletừ khóa, theo cách rất giống vớiwhilevòng lặp, nhưng hơi khác:

int i = 0;

do { /* do something */

i++; } while (i < 10);

Khối chứa/* do something */nhận xét luôn được thực hiện ít nhất một lần, bất kể kiểm tra điều kiện ở phía dưới.

Sau đó, cho đến khiinhỏ hơn 10, chúng tôi sẽ lặp lại khối.

Thoát khỏi vòng lặp bằng cách sử dụngbreak

Trong tất cảCvòng lặp, chúng tôi có một cách để thoát ra khỏi vòng lặp tại bất kỳ thời điểm nào, ngay lập tức, bất kể các điều kiện đặt cho vòng lặp.

Điều này được thực hiện bằng cách sử dụngbreaktừ khóa.

Điều này rất hữu ích trong nhiều trường hợp. Bạn có thể muốn kiểm tra giá trị của một biến, ví dụ:

for (int i = 0; i <= 10; i++) {
  if (i == 4 && someVariable == 10) {
    break;
  }
}

Có tùy chọn này để thoát ra khỏi vòng lặp đặc biệt thú vị đối vớiwhilevòng lặp (vàdo whilequá), bởi vì chúng tôi có thể tạo các vòng lặp dường như vô hạn kết thúc khi một điều kiện xảy ra và bạn xác định điều này bên trong khối vòng lặp:

int i = 0;
while (1) {
  /* do something */

i++; if (i == 10) break; }

Khá phổ biến khi có loại vòng lặp này trong C.

Tải xuống miễn phí của tôiSổ tay C


Các hướng dẫn khác về tiếng clang: