☰ 目录

一、基础用法

1. 标准计数循环

这是最常见的for循环形式,适用于已知循环次数的情况。

for (int i = 0; i < 10; i++) {
    printf("迭代次数: %d\n", i);
}
  • 初始化:int i = 0,定义并初始化循环变量i
  • 条件判断:i < 10,当i小于 10 时,循环继续执行。
  • 变量更新:i++,每完成一次循环,i的值增加 1。

2. 递减循环

通过改变变量更新的方式,可以实现递减循环。

for (int i = 10; i > 0; i--) {
    printf("倒计时: %d\n", i);
}

3. 步长调整

可以自定义循环变量的变化幅度,也就是步长。

// 偶数序列:0, 2, 4, 6, 8
for (int i = 0; i < 10; i += 2) {
    printf("%d ", i);
}

二、灵活的表达式省略

for循环的三个表达式都可以根据需要省略,但分号;不能省略。

1. 省略初始化

可以在循环之前完成变量的初始化。

int i = 0;
for (; i < 5; i++) {
    printf("%d ", i);
}

2. 省略条件判断

如果不写条件判断,默认条件始终为真,这会形成无限循环。

for (int i = 0;; i++) {  // 等同于 while(1)
    if (i > 5) break;    // 必须在循环体中设置退出条件
    printf("%d ", i);
}

3. 省略变量更新

可以把变量更新操作放在循环体内部。

for (int i = 0; i < 5;) {
    printf("%d ", i);
    i++;  // 变量更新移到此处
}

4. 全部省略

for (;;) {  // 无限循环,等同于 while(1)
    // 需要在循环体中使用 break 来退出
}

三、多变量控制

在初始化和变量更新部分,可以使用逗号分隔多个表达式,从而实现多个变量对循环的控制。

1. 双变量循环

for (int i = 0, j = 10; i < j; i++, j--) {
    printf("i=%d, j=%d\n", i, j);
}

2. 遍历二维数组

int matrix[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        printf("%d ", matrix[i][j]);
    }
    printf("\n");
}

四、嵌套循环

在一个for循环内部再放置一个或多个for循环,这就是嵌套循环,常用于处理多维数据结构。

1. 打印乘法表

for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        printf("%d×%d=%d\t", i, j, i*j);
    }
    printf("\n");
}

2. 模式打印

// 打印直角三角形
for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= i; j++) {
        printf("*");
    }
    printf("\n");
}

 

 

 

 

 

意见反馈

AI助手

代码编辑器