一、分支语句(选择结构)
1 .if语句
(1)
表达式 ——需要表达式为真,才能执行if后的语句(非0的则为真)。
![](https://img-blog.csdnimg.cn/26eeea44f7364e859e3790a513e4db7e.png)
![](https://img-blog.csdnimg.cn/602fb118dd3a4afd82355fded66aacc6.png)
(2)
如果表达式为真,执行语句1;表达式为假,执行语句2.
![](https://img-blog.csdnimg.cn/63132cd43a114bf5b7d7af9b61192837.png)
![](https://img-blog.csdnimg.cn/d991a217f6324b9884dc81beff992e65.png)
在编写程序的时候时,要注意规范书写代码:
![](https://img-blog.csdnimg.cn/27fbd107f72a4844a9b8c1b25fb17325.png)
test函数中,表达式成立,返回1;表达式不成立,返回0;这样的书写格式,让初学者不宜看懂。所以在编辑代码时,一定要注意格式的美观。
(3)
在利用if来进行判断的时候,往往不是存在两种可能性,可能存在多种的可能性。这时就需要利用if的多分支语句来进行判断。 如果表达式1成立,执行语句1;如果表达式2成立,执行语句2;如果表达式都不成立时,则执行表达式3。
在进行判断完成后,执行的语句只执行判断条件后面紧跟着的语句,如果需要执行多语句时,则需要添加{}这样的代码块,这样就把代码块的内容整体看为一条语句。
(4)悬空else
![](https://img-blog.csdnimg.cn/d559875092cb4dd6a67e11140e915317.png)
else
的匹配
:
else
是和它离的最近的
if
匹配的
注:在编写代码的时候,在图中的表达式中,b==2,可以写为2==b,如果把==变为=时,b==2成立,2==b不成立,因为一个表达式或一个常量不成进行赋值操作。
2.
switch
语句
在进行选择语句的时候,如果判断的条件太多,用if语句就太复杂,所以我们可以采用witch语句。
![](https://img-blog.csdnimg.cn/979ee7137ab74cdf943d344bcd2b59d7.png)
语句项为一些case语句。
![](https://img-blog.csdnimg.cn/705009d8937b409e87b6fb5d81ed9f86.png)
在执行本程序当中的switch中,为什么答案会有星期六和星期天呢。
如果我们需要一个准确的答案,则利用break;
break
语句
的实际效果是把语句列表划分为不同的分支部分。
default
子句 :当所有的case语句都不执行时,
程序并不会终止,也不会报错,因为这种情况在
C中并不认为是个错误。
写在任何一个
case
标签可以出现的位置。
当
switch
表达式的值并不匹配所有
case
标签的值时,这个
default
子句后面的语句就会执行。
所以,每个
switch
语句中只能出现一条
default
子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个
case
标签一样执行
default
子句。
注:sswitch(),括号中的内容必须为整形表达式。 case 后必须是整型常量表达式
二、循环语句
1. while 循环
while循环的执行流程:![](https://img-blog.csdnimg.cn/2e3ad81b4ec649698edfd9d82dcd72dd.png)
如打印1——10的数字:![](https://img-blog.csdnimg.cn/f4ce5079cad34ec9af1fd71dba9baade.png)
break在while循环中的作用:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以:
while
中的
break
是用于永久终止循环的。
continue
在while循环中的作用就是:
continue
是用于终止本次循环的,也就是本次循环中
continue
后边的代码不会再执行,
而是直接跳转到
while
语句的判断部分。进行下一次循环的入口判断
2. for循环
执行流程图: ![](https://img-blog.csdnimg.cn/a04a827af9804253a0ef245dfe03c4dc.png)
表达式
1
表达式
1
为
初始化部分
,用于初始化循环变量的。
表达式
2
表达式
2
为
条件判断部分
,用于判断循环时候终止。
表达式
3
表达式
3
为
调整部分
,用于循环条件的调整。
在
for
循环中也可以出现
break
和
continue
,他们的意义和在
while
循环中是一样的。
但也存在差异:
建议:
1.
不可在
for
循环体内修改循环变量,防止
for
循环失去控制。
2.
建议
for
语句的循环控制变量的取值采用
“
前闭后开区间”写法。
在本次循环中,循环次数为0次,因为在表达式2中,k=0,0为假则直接跳出循环。
3.do...while()循环
执行流程图:![](https://img-blog.csdnimg.cn/63f00efadbc34bcd831764889c93d588.png)
特点:循环至少执行一次,使用的场景有限,所以不是经常使用。 break和continue 同样在do...while()循环适用。
4.goto语句
C
语言中提供了可以随意滥用的
goto
语句和标记跳转的标号。
从理论上
goto
语句是没有必要的,实践中没有
goto
语句也可以很容易的写出代码。
但是某些场合下
goto
语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。
例如:一次跳出两层或多层循环。
多层循环这种情况使用
break
是达不到目的的。它只能从最内层循环退出到上一层的循环。