谈谈c语言的分支结构和循环结构——循环结构

我在上个帖子里已经介绍完了分支结构,现在来简单介绍一下循环结构,在c语言我们通常会使用for、while、do while来实现循环结构。

目录

一、while循环

1.语法形式:

2.while语句的执行流程

二、for循环

2.1 循环形式

2.2 for循环的执行流程

三、do-while循环

3.1语法形式

3.2 do-while循环的执行流程

四、break和continue语句

1、while循环中的break和continue

2、for循环中的break和continue

3、do-while循环中的break和continue

五、goto语句

 

一、while循环

while语句的循环结构和if的语句非常相似

1.语法形式:

if(表达式)
   语句

while(表达式)
    语句;//如果循环体想要包含更多的语句,可以加上大括号

最大的区别其实在于:while语句可以实现循环效果。

2.while语句的执行流程

5408b9c50e8243eca05529bfa8f6230d.png

首先先执行判断表达式,如果表达式的值为0,循环直接结束;如果表达式的值不为0,则执行循环语句,语句执行完后要继续判断,看是否进行下一次判断。

二、for循环

for循环是三种循环中使用最多的

2.1 循环形式

for(表达式1;表达式2;表达式3)
    语句//如果循环体想要包含更多的语句可以加上大括号

表达式1:用于循环变量的初始化

表达式2:用于循环结束条件的判断

表达式3:用于循环变量的调整

2.2 for循环的执行流程

591066dcfe244f4c986a62fe2adde064.png

首先执行表达式1 初始化循环变量,接下来就是执行表达式2的判断部分,表达式2的结果如果==0,则循环结束;表达式2的结果如果!=0则继续执行循环语句,循环语句执行完后,再去执行表达式3,调整循环变量,然后再去表达式2的地方执行判断,表达式2的结果是否为0,决定循环是否继续。

在整个循环过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。

三、do-while循环

在循环语句中

3.1语法形式

do  
    语句;
while(表达式);

与while和for这两种循环有些不同的是,前面两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环;

而do-while则是先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就进入下一次循环,表达式为假,则终止循环。

3.2 do-while循环的执行流程

6397312e26ec40c19bd93642244069be.png

在do-while循环中先执行图上的“语句”,执行完语句,再去执行“判断表达式”,判断表达式的结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。

注意:根据do-while的执行流程可以看出来,在do-while语句中循环体至少执行一次,这里也是do-while循环比较特殊的地方。

四、break和continue语句

在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环。在c语言中提供了break和continue两个关键字,来达到终止循环的目的。

1、while循环中的break和continue

break的作用是永久的终止循环,只要break被执行,break外的第一层循环就终止了。

所以以后如果想在某种条件下终止循环,break就可以实现。

continue可以跳过某一次循环continue后面的代码,直接到循环的判断部分,进行下一次循环的

断。但如果循环的调整是在continue后面的话,可以会造成死循环。

2、for循环中的break和continue

与while循环中的break一样,for循环中的break也是终止循环,无论循环还需要循环多少次,只要执行到了break,循环就彻底终止。

continue的作用是跳过本次循环中continue后面的代码,直接去到循环的调整部分。所以未来当某个条件发生的时候,本次循环无需再执行后续某些操作的时候,continue就可以实现。

3、do-while循环中的break和continue

do-while语句中的break和continue的作用和while循环一摸一样。

(大家可以自行分别测试,体会他们的作用)

五、goto语句

在c语言中提供了一种特别的语法,就是goto语句和跳转标号,goto语句可以实现在同一个函数内跳转到设置好的标号处。在多层循环的代码中,如果想快速跳出,使用goto非常方便。

但是如果goto语句使用不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以大家使用的时候一定小心谨慎。

for(...)
{
  for(...)
{
  for(...)
{
   if(disaster)
     goto error;
}
}
}

   error;

在这个例子中,for循环想提前退出要使用break,一个break只能跳出一层for循环,如果3层循环嵌套就要三个break才能跳出循环,所以在这种情况下我们使用goto语句就会更加的快捷。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值