云计算百科
云计算领域专业知识百科平台

C语言总结(四)---循环结构

前言

        学习循环的时候,三种写法总容易记混,上机敲代码经常踩坑:要么 for 后面多打个分号,要么 do while 末尾忘了加分号,调试半天找不到问题。我把循环结构这部分的要点、容易出错的细节全部整理汇总,区分清楚每种循环的使用场景,配上简单代码例子,方便平时刷题、考前快速翻看巩固。

三种主流循环结构总述

        循环作用:重复执行一段代码,简化重复逻辑,分为for、while、do-while三类,核心区别是判断时机、初始化位置不同;goto为跳转循环,不推荐常规使用。

一、for 循环(最常用,适合已知循环次数场景)

1. 标准语法

for(表达式1; 逻辑表达式2; 表达式3)

{

        循环体语句;

}

2. 三段表达式含义

(1)表达式 1:初始化

仅循环开始执行 1 次,用来定义 / 赋值循环变量(如 int i=0);

(2)表达式 2:循环判断条件

每次循环前执行,结果为真(非 0)执行循环体;结果为假(0)直接跳出循环;

(3)表达式 3:迭代更新

一轮循环体执行完毕后运行,用来修改循环变量,让循环趋向结束(如 i++)。

3. 执行顺序

4. 语法规则 

(1)三个表达式位置固定不能互换,分号 (;) 是分隔符,不能删除;

(2)三表达式均可省略,但逻辑必须闭环:

        for(;;):三个表达式全部省略,等价死循环(无限循环);

        省略表达式 1:初始化写在 for 循环上方;

        省略表达式 2:无终止条件,直接死循环;

        省略表达式 3:变量更新写在循环体内;

(3)for(…) 末尾禁止加分号:分号代表循环体为空,大括号内代码会脱离循环,仅执行一次;

// 错误!分号隔断循环

for(int i=0;i<10;i++);

{

         printf("%d",i);

}

(4)for() 和大括号 {} 之间不能插入任何语句。

5. 基础示例(打印 0~9)

#include <stdio.h>

int main()

{

        // 1初始化i=0;2判断i<10;3每次循环i自增1

        for(int i=0; i<10; i++)

        {

                printf("%d ",i);

        }

        return 0;

}

二、while 循环(适合未知循环次数场景)

1. 标准语法

while(逻辑表达式)

{

         循环体语句;

}

2. 三段逻辑分布

(1)循环变量初始化:写在 while() 上方;

(2)循环判断条件:括号内表达式;

(3)变量更新(趋近结束):写在循环体内部。

3. 执行顺序

先判断表达式,条件成立才执行循环体;条件不成立直接跳过循环。

4. 语法硬性规则 & 易错点

(1)while(表达式) 末尾不能加分号,加分号会造成空循环;

(2)循环体仅一行时可省略大括号,但规范写法建议保留,避免后续加代码出错;

(3)死循环写法:while(1),表达式恒为真,无限执行循环体。

5. 基础示例(打印 0~9)

#include <stdio.h>

int main()

{

        int i = 0; // 初始化放循环外

        while(i < 10)

        {

                printf("%d ",i);

                i++; // 更新变量放循环内

        }

        return 0;

}

三、do-while 循环(先执行,后判断,至少运行 1 次)

1. 标准语法

do

{

        循环体语句;

}while(逻辑表达式);

2. 核心特性

先执行循环体,再判断条件,无论条件真假,循环体至少执行 1 次,适合菜单交互类场景。

3. 语法硬性规则 & 易错点

while(表达式) 末尾必须带分号 ;,漏写会直接编译报错。

4. 基础示例(打印 0~9)

#include <stdio.h>

int main()

{

        int i = 0;

        do

        {

                printf("%d ",i);

                i++;

        }while(i < 10); // 末尾分号不能忘

        return 0;

}

三种循环核心对比

循环类型判断时机最少执行次数适用场景
for 循环前判断 0 次(条件不成立直接不跑) 已知循环次数(计数循环)
while 循环前判断 0 次 未知循环次数,需先判断再执行
do-while 循环后判断 至少 1 次 菜单、输入校验,必须先执行一次逻辑

四、goto 跳转循环(了解即可,不推荐使用)

1. 语法格式

标签名:

循环逻辑;

if(退出条件)

        goto 标签名;

2. 说明

(1)作用:无条件跳转到自定义标签位置,可模拟循环;

(2)缺点:破坏代码结构化,流程混乱,大型项目禁止使用;

(3)唯一推荐场景:多层循环嵌套时一次性跳出所有循环。

简单示例

#include <stdio.h>
int main()
{
int i = 0;
loop: // 自定义标签
printf("%d ",i);
i++;
if(i < 5)
goto loop; // 跳回标签,实现循环
return 0;
}

五、补充拓展:循环通用知识点

(1)死循环终止:程序运行死循环时,键盘快捷键 Ctrl + C 强制结束程序;

(2)循环嵌套:for/while/do-while 可互相嵌套,常用于打印图形、二维遍历;

(3)配套控制关键字(break/continue)

        break:直接跳出当前所在循环,终止循环;

        continue:跳过本次循环剩余代码,直接进入下一轮条件判断。

总结

        本帖梳理了 C 语言 for、while、do-while 三类循环的全部核心内容,明确每种循环的语法要求、执行顺序和适用场景,对比出三者最关键的执行次数区别。同时补充了 goto 循环的用法与弊端,整理了日常写代码高频出错的语法问题,搭配基础示例辅助理解。吃透循环结构,就能处理大部分重复运算题目,也为后续数组、嵌套循环等复杂代码打下基础。

赞(0)
未经允许不得转载:网硕互联帮助中心 » C语言总结(四)---循环结构
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!