几乎所有的汇编语言,包括c语言,都有三种基本的结构,包括——顺序结构,选择结构,循环节够。顺序结构的程序设计是最简单的,它的执行顺序是自上而下,依次执行。至于选择结构,其中有if语句,switch语句。在循环结构中,最常用的是for语句,此外还有while语句,do while语句,下面,我们将依次讲解这三种语句。
一:顺序结构
顺序结构的程序设计是最简单的,它是一条一条的从上而下执行语句,它会执行所有的语句,不会重复执行已经执行过的语句。它就像是工厂的流水线一样,只会顺序执行。
二:选择结构
c语言的最常用选择语句就是if语句,它根据给定的表达式的值进行判断,从而决定执行某个分支程序段。
if语句
if 的语法形式如下
if(表达式) 语句;
它的含义是:如果表达式的值为真(即非0),则执行后面的语句;否则不执行该语句。
程序流程图如下所示:

注意:if关键字之后的表达式通常是逻辑表达式或者关系表达式,也可以是赋值表达式或者变量等等。
if else语句
if else语法形式如下
if(表达式) 语句1;else 语句2;
当if语句在表达式的值为true时,先执行if后面的语句,当不满足if语句的条件时,就需要else来执行另一个表达式。在更多时候,针对表达式的值为true或者false的情况,需要先分别执行不同的语句然后再执行后续代码。
if else语句的流程图如下

当然,如果对于有多个分支的情况,可以使用if-else-if语句。
其语法格式如下
if(表达式1)
语句1;
else if(表达式2)
语句2;
......
else
语句n;
其if-else-if语句流程图如下

在此地方,我们还要注意一个易错点,就是关于悬空else问题,具体表现就是:如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。
switch语句
一般的if语句只能处理两个分支,而在我们的日常工作生活中却常常需要用到多个分支的选择,虽然if-else-if语句可以解决这个问题,但就效果和整洁性来说,不如switch语句。switch语句就像是一栋楼里面的门,通过特定的条件从而进入某个门。
switc语句语法形式如下
switch(表达式)
{
case常量表达式1;语句1;break;
case常量表达式2;语句2;break;
....
case常量表达式m;语句m;break;
default:
语句n;
}
它的执行流程为:首先计算表达式的值,然后将表达式的值和后面的各个case关键字的值进行匹配,当表达式的值和关键字的值一样的时候,就执行case后面的语句。然后不进行判断,继续执行所有的case语句,直到遇到break语句才退出这个switch语句。如果表达式的值与case关键字都匹配不上,那么就执行default后面的语句。
其switch语句流程图如下

注意:(1):switc语句后面括号内的表达式的值必须为整型(int),不能为实数型(float,doubl...)。
(2):case关键字后面的值可以是常量(如1,2等),也可以是常量表达式(如1+1,3+4等),但是表达式中不能有变量(如2+i是错的)。原因是case关键字后面的值必须在编译阶段被确认。
(3):每个case后的常量表达式的值必须与switch后面括号内的表达式类型一致,且各个case后的常量表达式必须各不相同,否则会出现执行两个分支的矛盾。
(4) :执行完一个case后面的语句后,流程控制转移到下一个case继续执行,“case”常量表达式只起语句标号作用,并不是在该处进行条件判断。因此,如果在执行完当前的case语句后需要跳到switch语句后执行,就需要在该case分支的最后加上一条break语句。
三:循环结构
在实际的程序中,有时需要反复操作一个或者几个动作。c语言中,当程序运行到应该位置后,又返回执行前面的语句,进行多次重复,我们把这样的结构称为循环结构。在c语言中国提供了多个循环结构控制语句,这种语句就像是一个个圆圈一样,只有触发某个条件,才能让它从里面脱离出来。
while语句
当循环条件时满足执行循环体内的语句。
while语句的语法形式如下
while(表达式) 语句;
其while语句的流程图如下

注意:循环体可以是一条语句,也可以是多条语句。如果是多条语句,则需要使用大括号{}将这些语句括起来,作为应该语句块。
do while语句
while语句是在循环前先判断条件,如果一开始条件不满足,那么循环体一次都不执行。而do while语句是先循环,在循环中产生控制条件,第一次循环结束后,再判断条件,以决定是否进行下一次循环。
do while其语法格式如下
do 语句; while(表达式;
其流程图如下

for语句
相比较上面的两种语句,在各种高级程序设计语言都提供for循环,另外,for循环条件清楚,使用和修改起来方便,这也就是为什么for语句受欢迎的原因。
for语法形式如下
for(表达式1; 表达式2; 表达式3)
for语句流程图如下所示

for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部 分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形 式上 for 循环要更优⼀些。
goto语句
C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数 内跳转到设置好的标号处。goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建 议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出 使⽤ goto 就⾮常的⽅便了。for 循环想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套 就得使⽤3个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷。如下所示。
#include <stdio.h>
int main()
{
printf("hehe\n");
goto next:
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
1030

被折叠的 条评论
为什么被折叠?



