Cú pháp và cách sử dụng vòng lặp for trong C tốt nhất

Trong quá trình xây dựng một chương trình C thì bạn sẽ cần lặp lại mã nhiều lần, tuy nhiên không chỉ đơn giản là sao chép và dán mà còn thêm nhiều những thao tác khác. Do đó ngôn ngữ C có một vài chức năng giúp cho việc lặp mã phổ biến là vòng lặp for trong C và vòng lặp while. Cùng Box.edu tìm hiểu kỹ hơn nhé!

👉 Xem thêm: Cách viết chương trình Hello World trong C đầu tiên của bạn

👉 Xem thêm: Tổng quan những thông tin cơ bản về chuyển mạch C

👉 Xem thêm: Cách hiển thị ký tự đặc biệt với chuỗi thoát Escape Sequences

Mục lục bài viết

Tổng quan về vòng lặp for trong C

tong-quan-ve-vong-lap-for-trong-c.jpg

Tổng quan về vòng lặp for trong C

Vòng lặp for trong C được hiểu là một đoạn mã sẽ chạy miễn là các tham số của nó vẫn đúng. Thiết kế của vòng lặp for () sao cho nó bắt đầu bằng một mệnh đề duy nhất (ví dụ như count = 1) và sau đó tiếp tục lặp cho đến khi đáp ứng một điều kiện cụ thể (chẳng hạn như count = 25). Trong khi vòng lặp tiếp tục, một hành động nhất định cũng được thực hiện như là tăng số lượng lên 1.

Đặc biệt là hầu hết các nhà lập trình viên đều cần hiểu được sự logic của vòng lặp for này vì chúng gần như giống nhau ở hầu hết mọi ngôn ngữ. Vòng lặp for () này là một trong những dạng cơ bản và thiết yếu nhất của logic lập trình, chúng chỉ đứng sau cú pháp if / then.

Ý nghĩa của việc sử dụng vòng lặp for trong C?

Vòng lặp for () được coi là một yếu tố cơ bản của bất kỳ ngôn ngữ mã hóa phức tạp nào. Thay vì phải lặp đi lặp lại mã của bạn, thay vào đó bạn có thể sử dụng một vòng lặp. Khi nói đến lập trình, luôn có một lợi thế là có thể đơn giản hóa mã. Khi bạn có một vòng lặp for (), bạn chỉ cần chỉnh sửa mã trong vòng lặp chứ không phải chỉnh sửa nhiều bản sao của mã.

Ngoài ra bạn cũng có thể sử dụng vòng lặp for trong C để:

  • Lặp lại thông qua các mục cơ sở dữ liệu
  • Quét đầu vào của người dùng
  • Đồng thời đếm số lần lặp lại của một hàm

Tuy nhiên thì không phải lúc nào bạn cũng cần vòng lặp for () cho việc này. Đặc biệt bạn cũng có thể sử dụng các loại vòng lặp khác nhau, chẳng hạn như while () hoặc do () while (). Ngoài ra còn có các hàm – ví dụ như switch () – mà bạn có thể sử dụng để tạo một cái gì đó tương tự như khi dùng vòng lặp for ().

Cấu tạo của vòng lặp for trong C

for ([expression]) {
	[statement]
}

Để có thể hiểu rõ hơn về vòng lặp for trong C thì bạn phải nghiên cứu và tìm hiểu thật kỹ cấu tạo bên trong của nó. Ban đầu các bạn có thể thấy vòng lặp for rất phức tạp vì nó trừu tượng và dày đặc các chuỗi lặp. Tuy nhiên thực tế là vòng lặp này khá đơn giản. 

Ở ví dụ này sẽ cho thấy rằng để lặp qua một biến num thì cần phải thực thi với một đoạn mã qua một vài lần nhất định.

#include <stdio.h>

int main() {
	int i;
	for (i = 1; i < 11; ++i) {
		printf(“%d \n“, i);
	}
}

Trong câu lệnh lặp, chúng ta phải khai báo một int i. Sau đó vòng lặp được thể hiện như sau:

i = 1; Mệnh đề này đặt int i bằng một khi vòng lặp đầu tiên bắt đầu
i <11; Với mệnh đề này sẽ yêu cầu vòng lặp for tiếp tục chạy cho đến khi int i không còn nhỏ hơn 11
++ tôi;  Còn mệnh đề này yêu cầu vòng lặp for tăng int i lên một trong mỗi vòng lặp

Ở phần thân của vòng lặp, nó yêu cầu chương trình in ra số nguyên bằng lệnh printf (). % d đề cập đến một trong nhiều kiểu dữ liệu C. Như vậy vòng lặp sẽ thực hiện 10 lần, in các số từ 1 đến 10. Vòng lặp kết thúc khi int num không còn nhỏ hơn 11. Cuối cùng vòng lặp sẽ tiếp tục thực thi toàn bộ khối mã bên trong nó.

Lúc này bạn có thể viết là:

int main() {
	int i;
	for (i = 1; i < 11; i=i+2) {
		printf(“%d\n”, i);
	}
}

Điều này sẽ làm tăng số nguyên i lên hai ở mỗi lần lặp lại. Ngoài ra, có thể viết là:

for (i = 0; i < 11; ++i) {
	printf(“%d\n”, i);
}

Trong trường hợp này thì số nguyên tôi sẽ bắt đầu bằng 0 thay vì 1. Các bạn cũng có thể viết:

for (i = 1; i <= 25; ++i) {
	printf(“%d\n”, i);
}

Lúc này nó sẽ tăng lên cho đến ngày 25. Còn nếu không có vòng lặp for (), mã để in các số từ 1 đến 10 sẽ có dạng như sau:

int main() {
		printf(“1\n”);
		printf(“2\n”);
		printf(“3\n”);
		printf(“4\n”);
		printf(“5\n”);
		printf(“6\n”);
		printf(“7\n”);
		printf(“8\n”);
		printf(“9\n”);
		printf(“10\n”);
	}

Nếu sau đó bạn quyết định rằng bạn muốn có một khoảng trắng thay vì một dòng mới, bạn cần phải cập nhật mọi dòng. Nhưng với vòng lặp for (), bạn chỉ cần cập nhật một đoạn mã lặp lại.

Các thao tác dữ liệu vòng lặp for trong C

cac-thao-tac-du-lieu-vong-lap-for-trong-c.jpg

Các thao tác dữ liệu vòng lặp for trong C

Ở mỗi chương trình, vòng lặp for () về cơ bản sao chép mã. Mọi thứ đều có thể nằm bên trong khối mã vì khối mã đang được “sao chép và dán” nhiều lần theo hướng của vòng lặp for () – miễn là điều kiện đúng.  

Hãy xem xét đoạn mã sau:

int main() {
	int i;
	int count = 1;
	for (i = 1; i <= 10; ++i) {
		count = i;
	}
	printf(“%d”,count);
}

Mã này sẽ không in các số từ 1 đến 10 vì không có gì được in bên trong mã. Và nó sẽ chỉ in ra số 10. Số lượng biến bị ảnh hưởng bởi vòng lặp for () 10 lần – nhưng nó chỉ được in ra bên ngoài của vòng lặp for (). Trên thực tế, nếu bạn muốn lặp lại từ số 1 – 10 bạn có thể viết như sau:

for(count = 1; count <= 10; ++count) {
		printf(“%d\n”,count);
	}

Không cần thiết phải sử dụng “i”; nó có thể là bất kỳ int chính nào. 

So sánh vòng lặp for trong C vào vòng lặp while trong C

Như các bạn đã biết thì vòng lặp for () không phải là loại vòng lặp duy nhất trong C. Ngoài ra còn có vòng lặp while cũng được sử dụng tương tự. Trong đó vòng lặp while như sau:

int i;
i = 0;
while (i <= 10) {
printf(“%d\n”,i);
i=i+1; 
}

Vòng lặp while cũng in các số từ 1 đến 10. Đặc biệt chúng ta cần đặt int i thành 0 trước vòng lặp và đối số được truyền vào vòng lặp while () giống như câu lệnh điều kiện sẽ có trong vòng lặp for (). Bạn cũng cần tăng i theo cách thủ công bên trong vòng lặp. Thực tế vòng lặp while () chỉ là một phiên bản ít trừu tượng hơn của vòng lặp for ().

So sánh vòng lặp for trong C và trường hợp Switch trong C

Vòng lặp for () sẽ lặp qua các khối mã đã đặt. Còn tường hợp switch () lại lặp qua các khối mã rời rạc.

int i;
	i = 4;
	switch(i) {
		Case 1: 
			printf(“1\n”); break;
		Case 2:
			printf(“2\n”); break;
		Case 3:
			printf(“3\n”); break;
		Case 4: 
			printf(“4\n”); break;
	}

Đoạn mã trên sẽ thực thi printf (“4 \ n”) và sau đó thoát ra khỏi hàm switch (). Với vòng lặp for (), mục đích là lặp lại giữa cùng một đoạn mã. Còn hàm switch (), mục tiêu là lặp lại giữa các khối mã hoàn toàn khác nhau. Thông thường sẽ lặp lại rất ít mã trong hàm switch (). Vì điều này sẽ dẫn đến mã khó duy trì.

Tuy trường hợp switch () thường được thảo luận cùng với các vòng lặp. Nhưng nó là một sự thay thế phù hợp cho cú pháp if / then khó sử dụng.

Những lỗi phổ biến nhất của vòng lặp for

Tuy vòng lặp for khá phức tạp nhưng hiện nay nó trở nên phổ biến với nhiều người hơn. Một điều khó khăn của nó đó là về mặt cú pháp. Do đó nếu bạn đã hiểu mỗi câu lệnh trong vòng lặp for có nghĩa gì thì bạn sẽ có thể hiểu được một cách chính xác hơn. Một vài lỗi cơ bản của vòng lặp for là:

  • Quên dấu chấm phẩy. Để biết một vòng lặp for dưới dạng “for (i = 1, i <= 10, ++ i)” vì chúng ta đã quen với việc chuyển các đối số bằng dấu phẩy thay vì dấu chấm phẩy
  • Không đảm bảo các thông số có thể được đáp ứng. Có những tình huống mà các tham số không thể được đáp ứng. Thì nó có thể dẫn đến đệ quy vô hạnl
  • Lỗi bài hàng rào. Rất dễ dàng để một vòng lặp for () chạy ít hơn hoặc nhiều hơn. Mong muốn do cách lặp lại của vòng lặp for ()l
  • Có quá nhiều trong vòng lặp for (). Vòng lặp for () chỉ nên chứa mã phải được lặp lại, một lỗi phổ biến. Là bao quanh mã xuất hiện tiếp theo trong vòng lặp để lặp lại quá nhiềul
  • Dễ dàng cập nhật các biến khác bên trong vòng lặp for (). Các biến bên ngoài trong phạm vi có thể được thay đổi trong vòng lặp for ()l

Tổng kết

Những thông tin về vòng lặp for trong C được Box.edu. Chia sẻ cho các bạn mong rằng sẽ bổ sung cho các bạn những kiến thức cần thiết. Nắm được đặc điểm, cấu tạo cũng như so sánh. Với các vòng lặp khác trong ngôn ngữ lập trình C.

5/5 - (20 bình chọn)
Xin chào các bạn! Mình là Hà Nguyên Phương Hiện đang là tác giả của Box.edu.vn website nổi tiếng chuyên review, đánh giá, giới thiệu các khóa học hay nhất hiện nay.