拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

分支与循环:让程序学会“思考”和“重复”

分支与循环:让程序学会“思考”和“重复”

一. 引言:程序的两大“超能力”

初学 C 语言的时候,很多人会被分支、循环绕晕。其实说白了,分支就是做选择,循环就是重复干活,生活里到处都是对应的场景。

二. 分支:让程序学会“做选择”

分支的本质就一句话:如果满足某个条件,就走这条路;否则,走另一条路。它就像你出门前看天气——下雨就带伞,出太阳就戴帽子。程序里的分支,就是让代码根据不同的情况,做出不同的反应。

2.1 if 语句:最简单的条件判断

if 语句是分支里最基础的一种,翻译过来就是“如果……就……”。它适合处理那种“要么做,要么不做”的单一判断。

举个例子,判断一个人是不是成年人:

int age = 19; if(age >= 18){ printf("已经成年了!"); }

这里只有一种情况:年龄够了,就打印提示。如果年龄不够呢?什么都不发生。这就是 if 的“单行道”特性。

2.2 if-else 语句:两条路的岔路口

现实生活里,更多时候是“非此即彼”。if-else 就是给程序加了一个“否则”的选项,让两条路都能走通。

还是用年龄举例,这次加上“否则”的分支:

int age = 16; if(age >= 18){ printf("成年了"); else{ printf("未成年"); }

你看,不管年龄是多少,程序都会给出一个结果。这就是 if-else 和 if 最大的区别:if 是“可做可不做”,if-else 是“二选一,必须选一个”。

2.3 if-else if-else:多岔路口的选择

当选择不止两个时,if-else if-else 就派上用场了。它就像导航仪,根据你当前的位置,给你规划一条最合适的路线。

比如,根据分数给学生评级:

​ int score = 85 if (score >= 90){ print("优秀!继续保持!"); } else if(score >= 80){ print("良好,再努努力就能更上一层楼!"); } else if(score >= 60){ print("及格了,但还有提升空间。"); } else{ print("不及格,需要加把劲了。"); } ​

这里有个关键点:程序会从上往下依次检查,一旦某个条件满足,后面的就不再看了。所以条件的顺序很重要——如果把“大于等于60”写在“大于等于90”前面,那考了95分的人也会被归到“及格”那一档,这就闹笑话了。

2.4 switch 分支:固定值匹配

switch就像自助点餐机,输入编号对应不同菜品,专门处理固定值匹配。千万别忘了加break,不然会发生“点餐全上”的穿透bug。

例如:输入一个数字判断是星期几。

int day = 2; switch(day){ case 1: printf("周一"); break; case 2: printf("周二"); break; case 3: printf("周三"); break; default: printf("输入错误"); }

三. 循环:让程序学会“不厌其烦”

循环解决的是另一个问题:重复劳动。人做重复的事会累、会烦、会出错,但程序不会。循环就是让程序“不厌其烦”地执行同一段代码,直到满足某个条件才停下来。

3.1 for 循环:按“清单”办事

for 循环适合那种“我知道要循环多少次”的场景。它就像你拿着购物清单逛超市——清单上有几项,你就逛几项,逛完就结束。

比如,明确要循环 5 次,从 1 打印到 5。

​ for(int i=1; i<=5; i++){ printf("当前数字:%d\n",i); } ​

逻辑:第一步初始化变量;第二步判断条件;条件成立执行循环体;执行完循环体,执行自增,然后回到第二步判断。

适合:提前知道循环次数,遍历数组、打印九九表最常用

3.2 while 循环:按“条件”办事

while 循环则适合“我不知道要循环多少次,但我知道什么时候该停”的场景。它就像跑步——你不需要提前知道要跑多少步,只要“还没到终点”这个条件成立,就一直跑。

例如:

int i = 1; while(i <= 5){ printf("当前数字:%d\n",i); i++; }

逻辑:先检查条件,条件成立,才进入循环体。如果一开始条件就不成立,循环体一次都不会跑。

适合:不知道循环要跑多少次的场景。

3.3 do while 循环:先干活,再判断

do while循环适合先执行再判断的的场景,就像是先喝一口水,再看看杯子里还有没有水,以此来判断下回还能喝不。

int i = 1; do{ printf("当前数字:%d\n",i); i++; }while(i <=5);

逻辑:不管条件如何,循环体至少执行一次,执行完一轮之后,再去判断条件决定要不要继续。

适合:必须至少执行一次的场景,比如菜单:先打印菜单,再等待用户选择。

四.分支 + 循环组合:真实代码最常用的搭配

单独分支或者单独循环用处有限,写项目基本都是搭配使用。 举个例子:猜数字游戏。循环一直运行菜单;分支判断玩家输入,猜对就 break 跳出循环。

while(1){ printf("猜数字:"); scanf("%d",&num); if(num > ans){ printf("大了\n"); }else if(num < ans){ printf("小了\n"); }else{ printf("猜对!"); break; } }
返回列表