C语言的分支循环

本文详细介绍了C语言中的分支结构(if和switch)、关系表达式、逻辑运算以及循环结构(while、for和do-while),强调了正确使用这些结构对于解决问题的重要性,并提到了goto语句的特殊情况和适用场景。
摘要由CSDN通过智能技术生成

引文        

       通过学习,我们会发现C语言是与生活紧密相连的,生活中的任何事件都可以概括为:顺序;分支(选择);循环。所以C语言可以解决我们生活中遇到的大多数问题。顺序就是从上到下的逻辑顺序,是最基本的C语言执行语句,分支语句一般是 if 语句, switch语句。循环语句就比较多有 while循环,for 循环,do-while 循环。还有一系列的配套语句,才能使语句正常编译。

一,分支语句(选择结构)

1,if 语句

(1)简单的 if 语句

       if语句功能:计算并判断条件表达式的值,若为真(true)执行 if 后面的语句组1,然后运行 if 语句下面的程序;若条件表达式的值为假(false),则运行语句组2,执行流程如下图:

在C语言中,用非0表示真,0表示假。语句组可以是一条语句,这时可以不用{ };若语句组为多条语句时,需要用{ }括起来,表示一个整体。

(2)多分支 if 语句

        与简单的 if 语句类似,但是所包含的分支较多,功能:判断条件 S (1,2......n+1),若为真,执行语句 S 并结束分支 if 语句运行,若为假,继续下一判断条件;若所有判断条件均不成立,执行语句 n+1。

       可见,多分支语句运行时,即使有多个条件满足,也只能执行最先满足条件的那一个分支。

(3)if 语句的嵌套

       当问题比较复杂,判断条件比较多时,可能 if 或 else 语句模块中也使用到 if 语句,称这种使用方法为 if 语句的嵌套。

2,switch 语句

       C语言提供了专门是议案多分支结构的 switch 语句,该语句根据测试表达式的值决定执行分支结构中的哪一个分支。语句结构类似数学上的分情况讨论。case 用来表示某一种情况。              

       语句中的 break 语句为可选项;测试表达式的类型要求与常量表达式类型一致,一般为整型或字符型;break 语句的功能是结束switch语句的运行。
       switch 语句执行流程:
       先计算 switch 后测试表达式的值,然后自上而而下顺序判断哪个case常量表达式的值与测试表达式的值相等,相等时的就执行对应的语句组;
       若该语句组中没有执行到break语句,就直接执行下一个语句组,直到执行到break语句时停止 switch 语句的执行,退出switch语句;
若没有与测试表达式的值相等的常量表达式,则执行 default 中的语句组 X 。当每一个语句组都有break语句时,switch语句的执行流程如图:

二,关系表达式与逻辑表达式

1,关系运算符

用来对两个数值进行比较的比较运算符,C语言提供6种运算关系:

(1) <   小于                                              (2)<=  小于等于          

(3) >  大于                                               (4)>=  大于等于

(5)==  等于                                              (6)!=  不等于

2,关系表达式

用关系运算符将两个数值或数值表达式连接起来的式子。

关系表达式成立,返回真值:1

关系表达式成立,返回假值:0

3,3种逻辑运算符

并且:&&(逻辑与)

或者:  || (逻辑或)

不    : !(逻辑非)

三,循环结构

1,while 循环

while语句最简单的情况为循环体只有一个语句:

       其中表达式是循环条件,语句块为循环体。其执行过程是:先计算while 后面圆括号内表达式的值,如果其值为真(非0),则执行语句块(循环体),然后再计算while 后面圆括号内表达式的值,并重复上述过程,直到表达式的值为“假”(值为0)时,退出循环,并转入while后的下一语句去执行。

使用while 语句时,需注意如下几个问题:

       (1) while 语句的特点是先判断表达式的值,然后根据表达式的值决定是否执行循环体中的语句,因此,如果表达式的值一开始就为    假”,则循环体将一次也不执行。

       (2)当循环体由多个语句组成时,必须用左、    右花括号括起来,使其形成复合语句,即语句块。    

     (3)为了使循环最终能够结束,而不至于使循环体语句无穷执行,即产生“死循环”。因此,随着循环体的重复执行,条件语句的值可以由真变成假,进而跳出循环。

2,do-while 循环

do是C语言的关键字,必须与while联合使用。
        do-while 循环由 do 开始,用while 结束。必须注意的是:在 while(表达式)后的“;”不可丢,它表示do-while语句的结束。while 后一对圆打括号中的表达式,可以是C语言中任意合法的表达式。由它控制循环是否执行。
       按语法,在do 和 while 之间的循环体只能是一条可执行语句。若循环体内需要多个语句,应该用大括号括起来,组成复合语句,即语句块。

do-while  循环的执行过程:

     (1)执行 do 后面循环体中的语句。

     (2)计算while后面一对圆括号中表达式(循环条件)的值。当值为非零时,转会执行步骤1;当值为零时,执行步骤(3)。

     (3)退出do-while 循环。由do-while构成的循环与while循环十分相似,它们之间的主要区别是:while循环结构的判断控制出现在循环体之前,只有当while后面表达式的值为非零时,才能执行环体:在do-while构成的循环结构中,总是先执行一次循环体,然后再求表达式的值,因此,无论表达式的值是零还是非零,循环体至少要被执行一次。

和while 循环一样,在do-while循环体中,一定要有能使while后表达式的值变为0的操作,否则,循环将会无限制的进行下去。

3,for 循环

(1).for 语句的一般形式

for语句构成的循环通常称为for循环。for循环的一般形式如下:    

    for  (表达式1;表达式2;表达式3)
                   循环体;
for是C语言的关键字,其后的圆括号中通常含有3个表达式,各表达式之间用“;”隔开。这三个表达式可以是任意表达式,通常主要用于for循环的控制。紧跟在 for(...)之后的循环体,在语法上要求是一条语句,若在循环体内需要多条语句,应该用大括号括起来,形成复合语句,即语句块。

for循环执行过程:

(1)计算表达式1。
(2)计算表达式2,若其值为真(非零),则转步骤(3);若其值为假(零),则转步骤(5)。
(3)执行一次循环体。
(4)计算“表达式3”,然后转向步骤2.(5)结束循环。

(2),for 语句的几种灵活使用方式

for 语句的使用十分灵活,for语句一般形式的灵活使用衍生出来多种其他形式,详细阐述如下:
(1) for(;表达式2;表达式3)
for 语句一般形式中的“表达式1”可以省略,此时应在for语句之间前给循环变量赋初值。注意省略表达式1时,其后的分号不能省略。如
                                                            int   i=1;
                                                            for( ;i<=10;i++)
                                                                   printf(“%d“,i);
执行时,跳过“求解表达式1”这一步,其他不变。

(2)for(表达式1;;表达式3)
for 语句一般形式中的“表达式2”可以省略,如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2始终为真。

(3)for(表达式1;表达式2;)
for 语句一般形式中的表达式3也可以省略,但此时应把改变循环变量值的命令放置到循环体中,以保证循环能正常结束。如:
                                                          for(int i=1;i<=10;)                                                                                                                              {
                                                          printf(“%d“,i);                                                                                                                                      i++;                                                                                                                                                }

四,go to 语句

       C语言提供了一种非常特别的语法,就是 go to 语句和跳转标号,go to 语句可以实现在同一个函数内跳转到设置好的标号处。

       goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出 使⽤ goto 就⾮常的⽅便了。
       本来 for 循环想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套
就得使⽤3个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我比你更怕啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值