C语言之九条语句笔记
第3章 C语言控制语句
3.1 C语言程序结构
3.2 选择结构基本语句(2条:if、switch)
3.2.1 单种选择:if
3.2.2 两种选择:if-else
3.2.3 多种选择:if-else if-else if –else if-…-else.
3.2.4 switch-case-break
3.3 循环结构基本语句(3条)
3.3.1 for
3.3.2 while
3.3.3 do-while (少用,特殊情况时运用)
3.4 转移结构基本语句(4条)
3.4.1 goto(少用)
3.4.2 return
3.4.3 break
3.4.4 continue
第3章 C语言控制语句
3.1 C语言程序结构
C语言程序的3中基本结构。
- 顺序:从头到尾一步一步执行
- 分支:程序执行的过程中遇到支流
- 循环:程序执行的过程中,会重复执行一段代码
语句的分类:if-else、switch-case-default、for、while、do-while、break、continue、goto、return
3.2 选择结构基本语句
3.2.1 单种选择:if
if语句的定义:当满足条件语句时执行{}内的语句,否则不执行{}内语句。
if语句的格式:
if(条件语句) //注意:没有 “;” 号 { 执行语句; } |
注意:
(1) if中是非0就成立,eg: if(3.14) if(-1) 都会执行
(2) eg: a=1 if(--a) 不成立;但是if(a--)就成立,先用和后用的问题;
(3) 同样 a=0 if(a++) 不成立;但是if(++a)成立,也是先用和后用的问题
3.2.2 两种选择:if-else
if-else语句的定义:当满足条件语句时(条件语句结果非零)执行{}内语句,否则执行elas后的语句。
if-else语句的格式:
if(条件语句) //括号内是条件语句 只要结果非零 均进入执行语句 { 执行语句; } else { 执行语句; }
|
注意:
(1) 最后的else 对应的是 “相同等级条件语句中最近”的 if,如:
if();
if();
else;
他的else 是和最后一个if组合的。
3.2.3 多种选择:if-else if-else if –else if-…-else
多个else if语句定义:当不满足条件1时,继续判断下一条件语句,直到满足条件语句时,进入相应语句中执行,若都不满足所有条件语句,则执行最后 else 中的语句。
多个else if语句的格式:
if(条件语句1) { 语句1; } else if(条件语句2) //注意:是else if 不是 if else { 语句2; } else if(条件语句3) { 语句3; } 。。。 else //注意:最后只有else 不是 else if { 语句n; } |
注意:if 和 else if 或 if 和 else 组合时:当满足其中之一种就不会再执行另外两种了;
而 if..if...if 则会逐个执行一遍。
3.2.4 switch-case-break
定义格式:通过表达式得出数值,若得出的数值与下面case 后的数值对应,则执行相应的语句,若没有相对应的数值则执行default 后面的语句。
switch(表达式) //注意:没有 ”;” 号 { case 值1: 语句1;break; //注意:不能没有break 需跳出switch语句 否则继续 //执行往后的case 语句 直到全部case语句执行完为止 case 值2: 语句2;break; case 值3:{语句3;语句4;。。。;}break; //case后的语句可以是多条语句集 。。。 default:语句5;break;//若表达式中没对应的值与之对应 则执行语句5后跳出 } |
例子:
uchar x,y,z,a; x=y=a=3; switch(a) { case 1:x=8;(break) case 3:x=20;(break) case 6:x=80;(break) default:x=200; }
若case后面没加break则结果x=200; 若case 后面加break 则结果为x=20. switch-case-break 三个合在一起才构成选择结构语句。 |
补:switch 括号中 可以是字符常量 整型常量;但不可以是 浮点型
3.3 循环结构基本语句
3.3.1 for
for语句的定义格式:当表达式2为真时,执行循环体语句否则不进入循环。
for(表达式1;表达式2;表达式3) //注意表达式之间用 ”;” 隔开 括号后面没“;” { 循环体; } |
例子:
uchar i,x,y,z;//全局变量默认值为零 for(i=0;i<3;i++) { x=x+1;//i=0;x=1//i=1;x=2//i=2;x=3 y=y+1; z=z+1; }
最后结果:x=3 y=3 z=3 |
一个for循环,如何让两个变量初值不同,但是同时递增:即for后i++,n++
3.3.2 while
while语句的定义格式:当循环条件为逻辑0时不进入循环体;否则都会进入循环体,进行循环。
while(循环条件) { 循环体; } |
3.3.3 do-while (少用,特殊情况时运用)
do-while语句的定义格式:先执行循环体,再判断循环条件,若满足条件则继续进入循环体。
do { 循环体; }while(循环条件); //注意:不能漏了 ”;” |
注意:先执行一次循环,再判断循环条件是否满足。
3.4 转移结构基本语句
3.4.1 goto(少用)
一般用于跳出多重循环。
goto 标示符; 标示符: |
补:这个是最灵活的跳转,可跳转到函数中的任意点。
3.4.2 return
两个作用:1)结束函数;2)带回一个返回值
补:直接结束函数,最强的跳转、断开,在递归函数中也经常用到
3.4.3 break
跳出一层{};如果与if联用时,直接忽略if的存在
补:跳出的是包含它的、最近的一层循环。
3.4.4 continue
结束本次循环。
补:结束本次循环,进行下一次的本个循环
例子:
uchar i,x,y,z;//局部变量值不确定 i=x=y=z=1; for(i=0;i<3;i++) { x=x+1;(continue;或break;) y=y+1; z=z+1; } 无continue、break:结果为 x=4 y=4 z=4 有continue:结果为 x=4 y=1 z=1 有break:结果为 x=2 y=1 z=1 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库