C语言中的for循环语句(非常详细)
	在 C语言中,循环是程序设计中不可或缺的一部分,它允许我们重复执行一段代码以完成特定的任务。
	
	C语言提供了 3 种循环结构,分别是 while、do-while 和 for 循环,本文我们要深入讲解的是 for 循环。
	
	相比其他循环结构(如 while 和 do-while),for 循环以其简洁的语法和明确的分段结构,成为最常用的循环方式之一,它特别适合在已知循环次数或需要迭代的情况下使用。
	
	接下来,我们就从语法、用法、示例和注意事项等多个方面,全面剖析 for 循环。
for循环的基本语法
	for 循环的语法非常紧凑,它将初始化、条件判断和增量更新集中在同一行。基本形式如下:
for (初始化; 条件; 更新) {
    // 循环体:需要重复执行的代码
}
语法详细说明如下:
- 初始化: 在循环开始前执行一次,通常用于定义和初始化循环变量(如 int i = 0)。
- 条件: 每次循环开始前检查的表达式,返回布尔值(true 或 false)。如果为真,执行循环体;如果为假,退出循环。
- 更新: 每次循环体执行完毕后执行,通常用于修改循环变量(如 i++)。
- 分号 ;: 初始化、条件和更新之间用分号分隔,即使某部分为空,也必须保留分号。
- { ... }: 循环体,可以包含多行代码。如果只有一行,大括号可以省略,但建议保留以提高可读性。
	for 循环的执行流程是:
- 
		执行 
初始化部分(仅一次)。 - 
		检查 
条件,如果为真,执行循环体;如果为假,退出循环。 - 
		执行循环体后,执行 
更新部分。 - 返回步骤 2,重复直到条件为假。
 
	让我们通过一个简单的例子来理解 for 循环。假设我们要打印数字 1 到 5。
#include <stdio.h>
int main() {
    for (int i = 1; i <= 5; i++) {
        printf("%d\n", i);
    }
    return 0;
}
输出结果:
1 2 3 4 5
在这个例子中:
- 
		
int i = 1: 初始化循环变量i为 1。 - 
		
i <= 5: 检查条件,只要i小于等于 5,循环继续。 - 
		
i++: 每次循环后,i自增 1。 - 
		循环体打印当前的 
i值。 
当
i 增加到 6 时,条件 i <= 5 变为假,循环结束。
for循环的灵活性
	for 循环的三个部分(初始化、条件、更新)都可以根据需要调整,甚至省略,下面是一些变体用法。
1) 省略初始化
如果循环变量已经在外部定义,可以省略初始化部分。例如:
#include <stdio.h>
int main() {
    int i = 1;
    for (; i <= 5; i++) {
        printf("%d\n", i);
    }
    return 0;
}
注意,第一个分号仍然需要保留。
2) 省略条件
	如果省略条件,循环将无限执行,除非在循环体内用 break 语句跳出。例如:
#include <stdio.h>
int main() {
    for (int i = 1; ; i++) {
        printf("%d\n", i);
        if (i == 5) break; // 当 i 等于 5 时跳出循环
    }
    return 0;
}
输出结果与前面相同。
3) 多变量循环
	for 循环支持在初始化和更新部分使用多个变量。例如,打印两个递增序列:
#include <stdio.h>
int main() {
    for (int i = 1, j = 10; i <= 5; i++, j += 2) {
        printf("i = %d, j = %d\n", i, j);
    }
    return 0;
}
输出结果:
i = 1, j = 10 i = 2, j = 12 i = 3, j = 14 i = 4, j = 16 i = 5, j = 18
for循环的使用场景
	for 循环特别适合以下情况:
1) 已知循环次数
	当你明确知道需要循环多少次时,for 循环是最自然的选择。例如,计算 1 到 100 的和:
#include <stdio.h>
int main() {
    int sum = 0;
    for (int i = 1; i <= 100; i++) {
        sum += i;
    }
    printf("1 到 100 的和是: %d\n", sum);
    return 0;
}
输出结果:
1 到 100 的和是: 5050
2) 数组遍历
	for 循环常用于遍历数组。例如,打印一个数组的所有元素:
#include <stdio.h>
int main() {
    int arr[5] = {10, 20, 30, 40, 50};
    for (int i = 0; i < 5; i++) {
        printf("arr[%d] = %d\n", i, arr[i]);
    }
    return 0;
}
输出结果:
arr[0] = 10 arr[1] = 20 arr[2] = 30 arr[3] = 40 arr[4] = 50
嵌套for循环
	for 循环可以嵌套使用,常用于处理二维数组或生成复杂模式。例如,打印九九乘法表:
#include <stdio.h>
int main() {
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            printf("%d * %d = %d\t", j, i, i * j);
        }
        printf("\n");
    }
    return 0;
}
输出结果:
1 * 1 = 1 1 * 2 = 2 2 * 2 = 4 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
	外层循环控制行数,内层循环控制每行的乘法项数,\t 用于对齐输出。
for循环注意事项
	使用 for 循环时,需要注意以下几点:
1) 避免无限循环
如果更新部分无法使条件变为假,会导致无限循环。例如:
for (int i = 1; i <= 5; ) { // 缺少 i++,无限循环
    printf("%d\n", i);
}
解决方法是确保更新部分正确修改循环变量。
2) 循环变量的作用域
	在 C99 及以上标准中,for 循环中定义的变量(如 int i)仅在循环体内有效。例如:
for (int i = 1; i <= 5; i++) {
    printf("%d\n", i);
}
// printf("%d\n", i); // 错误,i 在此不可用
3) 边界问题
	数组遍历时,注意不要越界。例如,数组长度为 5,索引应从 0 到 4,条件写成 i <= 5 会导致访问越界。
综合练习
让我们通过一个综合示例巩固所学。编写一个程序,找出 1 到 100 之间的所有质数。
#include <stdio.h>
int main() {
    for (int num = 1; num <= 100; num++) {
        int isPrime = 1; // 假设 num 是质数
        for (int i = 2; i * i <= num; i++) {
            if (num % i == 0) {
                isPrime = 0; // 发现因数,不是质数
                break;
            }
        }
        if (isPrime && num > 1) {
            printf("%d 是质数\n", num);
        }
    }
    return 0;
}
输出结果(部分):
2 是质数 3 是质数 5 是质数 7 是质数 11 是质数 ... 97 是质数
	这个程序使用嵌套 for 循环,外层遍历 1 到 100,内层检查每个数是否为质数,优化条件 i * i <= num 减少计算量。
总结
	for 循环是 C语言中最灵活、最常用的循环结构之一。它的语法简洁,适合处理已知次数的循环、数组遍历和嵌套任务。
	
	认真阅读完本文,你已经彻底掌握了 for 循环的用法,尝试在你的程序中使用 for 循环吧!
 ICP备案:
 公安联网备案: