分支与循环(下)

本文详细介绍了C语言中的while、for、dowhile三种循环结构,以及break和continue语句的作用。同时探讨了goto语句在复杂循环中的应用,为初学者提供理解循环逻辑和控制结构的基础知识。
摘要由CSDN通过智能技术生成

       本章则开始讲述分支与循环的下半部分,循环的内容,本章我们要学习while,for,do while这三大循环类型和go to语句,接下来我们一个一个来看。

1.while循环

1.语法

while循环与if语句有相似之处,最直观的就是语法形式

if ( 表达式 )
语句 ;
while ( 表达式 )
语句 ;
我们发现在语法结构上while循环与if语句相同,但它们有什么区别呢
#include <stdio.h>
int main()
{
 if(1)
 printf("hehe\n"); //if后边条件满⾜,打印⼀次hehe
 return 0;
}
#include <stdio.h>
int main()
{
 while(1)
 printf("hehe\n"); //while后边的条件满⾜,死循环的打印hehe
 return 0;
}

其实while循环就比if语句多了个循环

2.while循环流程图

为了更直观的表示while循环,我们用流程图来看

 

⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语
句,语句执⾏完后再继续判断,是否进⾏下⼀次判断
这里的break与continue下面会讲述,大家不用担心

3.练习

了解了while循环的流程之后,我们接下来看个例题

eg:输⼊⼀个正的整数,逆序打印这个整数的每⼀位
eg:输入123     打印 3 2 1
1. 要想得到n的最低位,可以使⽤n%10的运算,得到的余数就是最低位,如:123%10得到3
2. 要想去掉n的最低位,找出倒数第⼆位,则使⽤ n=n/10 操作就可以去掉最低位的,如n=123/10得到12,12相较于123就去掉了最低位,12%10就得到倒数第⼆位2。
3. 循环1和2两个步骤,在n变成0之前,就能到所有的位

2.for循环

1.语法

for ( 表达式 1 ; 表达式 2 ; 表达式 3 )
语句; // 如果循环体想 包含更多的语句,可以加上⼤括号
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整
注意:
1.表达式1仅进行一次,同时也可以省略不写
2.三个表达式都可以省略,但是会陷入死循环eg:for(  ;;)

2.for循环流程图

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

3.练习

同样的我们看个例题

eg:计算1~100之间3的倍数的数字之和

我们发现每次进入循环都要判断,有没有不用if进行判断呢

我们每次进入循环都对i+3就相当与都是3的倍数

3.do-while循环

1.语法

do
语句;
while ( 表达式 )
while for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳
出循环;
do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表
达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。
因此do-while循环至少会循环一次,而这就是它的特点

2.流程图

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

3.练习

eg:输⼊⼀个正整数,计算这个整数是⼏位数

输⼊:1234 输出:4

4.break和continue语句

相信大家在已经对三个循环有了初步的了解,但是肯定还有疑问,在这三个循环的流程图中continue与break有什么作用呢,下面为大家解答

1.break

首先是break,在三个循环当中,它的作用都是一样的,都是终止循环

注意:如果有循环嵌套,则需要多个break进行处理

2. continue

continue 是继续的意思,在循环中的作⽤就是跳过本次循环中 continue 后边的代码,继续进⾏
下⼀次循环的判断。

whlie循环中的continue与do-while的continue处理方式是一样的,但与for循环中的处理方式是不同的

我们先来看while循环中的continue

我们发现程序并没有停下,而是陷入了死循环

i等于5后,就执⾏continue,直接跳过continue后的代码,去循环的判断的地⽅

因为这⾥跳过了 i = i+1 ,所以 i ⼀直为 5 ,程序陷⼊和死循环
那如果是for循环呢
我们发现程序结束,但是没有打印5
所以在 for 循环中 continue 的作⽤是跳过本次循环中 continue 后的代码,直接去到循环的调
整部分。

5.循环的嵌套

和分支一样,循环也有嵌套

我们看一个例题

eg:找出100~200之间的素数,并打印在屏幕上。

注:素数⼜称质数,只能被1和本⾝整除的数字。
1. 要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决。
2. 假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤循环解决。
3. 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。

6.go to语句

C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数
内跳转到设置好的标号处
next相当与一个标记符号,表示go to 语句要跳转到哪个地方
goto 语句,在多层循环的代码中,如果想快速跳出使⽤ goto 就⾮常的⽅便了。

7.结语

到这里分支与循环的内容也结束了

但是我们的编程之路还很遥远,加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值