资讯动态

C 语言分支与循环的介绍

发布时间:2026/10/27 18:57:18 来源:尧图企业网站定制
1. 为什么学分支与循环程序默认从上到下逐行执行而分支让我们按条件选择执行哪段代码循环让我们重复执行某段代码。掌握这两者就能写出会判断、会重复的程序。本文面向零基础读者用最直观的例子讲清if、switch、for、while、do-while以及break、continue。2. 分支结构让程序学会选择2.1 if 语句最基础的条件判断if的语法非常接近自然语言“如果……就……”。#includestdio.hintmain(void){intscore85;if(score60){printf(及格了\n);}return0;}要点条件写在圆括号里结果为真非 0就执行大括号内的语句。C 语言中0 表示假非 0 表示真这一点和很多语言不同。即使只有一条语句也建议保留大括号避免后续加代码时出错。2.2 if-else二选一if(score60){printf(及格\n);}else{printf(不及格\n);}2.3 else if多分支判断if(score90){printf(优秀\n);}elseif(score75){printf(良好\n);}elseif(score60){printf(及格\n);}else{printf(不及格\n);}注意判断顺序else if从上往下依次匹配一旦命中就不再往下判断。所以条件要从严格到宽松排列否则会出现逻辑错误。2.4 常见坑 与 inta5;if(a0){/* 错误这是赋值不是比较 */printf(不会执行\n);}if(a0){/* 正确比较 */printf(a 等于 0\n);}a 0会把 0 赋给a表达式结果为 0假所以分支不执行但a的值已经被悄悄改掉了。这类 bug 很难查写代码时务必小心。2.5 switch 语句等值多分支当判断的是某个变量等于几个固定值中的哪一个时switch比一长串else if更清晰。#includestdio.hintmain(void){intday3;switch(day){case1:printf(星期一\n);break;case2:printf(星期二\n);break;case3:printf(星期三\n);break;default:printf(其他\n);break;}return0;}关键点case后面必须是整型常量表达式不能是浮点数或变量。break用于跳出switch漏写会贯穿到下一个case有时是特性多数时候是 bug。default处理所有未匹配的情况建议总是写上。3. 循环结构让程序学会重复3.1 for 循环次数明确时首选#includestdio.hintmain(void){for(inti1;i5;i){printf(第 %d 次循环\n,i);}return0;}for (初始化; 条件; 更新)的执行顺序执行初始化只执行一次判断条件为真则执行循环体执行更新表达式回到第 2 步3.2 while 循环条件驱动intn5;while(n0){printf(%d\n,n);n--;}while先判断后执行条件一开始就不成立时循环体一次都不会执行。3.3 do-while 循环至少执行一次intn0;do{printf(至少执行一次\n);n;}while(n0);do-while先执行后判断适合先做一次再决定要不要继续的场景比如菜单交互。3.4 三种循环怎么选场景推荐写法循环次数已知for循环次数未知靠条件结束while至少执行一次do-while4. break 与 continue控制循环的刹车和跳过#includestdio.hintmain(void){for(inti1;i10;i){if(i3){continue;/* 跳过本次进入下一次 */}if(i8){break;/* 直接结束整个循环 */}printf(%d ,i);}printf(\n);return0;}输出结果为1 2 4 5 6 7。continue结束本次循环直接进入下一次。break结束整个循环在switch中则是跳出switch。5. 嵌套分支与循环的组合#includestdio.hintmain(void){for(inti1;i5;i){for(intj1;ji;j){printf(*);}printf(\n);}return0;}这段代码打印一个直角三角形。嵌套时要注意break和continue只作用于最内层的那一层循环。6. 初学者最容易踩的 5 个坑死循环while里忘记更新条件变量程序会卡住。分号误用if (x 0);后面多一个分号分支体变成空语句。与混用见 2.4 节。switch漏写break导致意外贯穿。浮点数做等值判断if (f 0.1)往往不成立应改用误差范围比较。7. 小结分支解决选哪条路if/if-else/else if/switch。循环解决重复做for/while/do-while。break跳出continue跳过。写循环时先想清楚初始值、终止条件、更新方式这三要素能避免绝大多数问题。建议把文中的例子逐个敲进编辑器跑一遍再尝试改造比如把成绩判断改成百分制转等级、把三角形改成倒三角。动手改代码是掌握控制流程最快的方式。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑