C语言中提供了三种循环语句:while、for、do....whille下面我们对这三种语句进行学习
1:while循环
1.1:if和while的区别
语法:while(表达式)
语句
乍一看,和前面分支语句中学的if语句是不是很相似下面我们通过代码看他们的区别
发现if语句中只执行了一次,而while语句却在一直执行,这是因为if语句是当表达式为真时就执 行语句,而且执行完后代码是继续往下走的,而while语句是当表达式为真时,往下走执行语 句,在执行完语句后会返回到while的表达式又去判断表达式的真假,如果真就继续又进行这个 语句,直到表达式子的值为假,或者遇到break语句才结束循环,继续往下走。
1.2:while语句的执行流程
由上图所示:
程序会先对表达式进行判断,如果为假就结束,如果为真就执行语句,执行完语句就会又返回到表达式的位置重新对表达式进行判断,如此反复,直到表达式的值为0就会结束这个循环,或者在语句中遇到break语句也直接结束循环,当遇到continue的时候就会跳出本次循环执行下一次循环,即就回到判断表达式的位置。
1.3:使用while语句的例子
例1:在屏幕上打印n以内的数
例2:
输⼊⼀个正的整数,逆序打印这个整数的每⼀位
例如: 输⼊:1234,输出:4 3 2 1
输⼊:521,输出:1 2 5
要想得到n的最低位,可以使⽤n%10的运算,得到的余数就是最低位,如:1234%10得到4
然后再使用除法除与10再赋值回给原来的变量就可以把低位的数给去除掉如上:1234/10=123;
四位数就得进行四次这样的循环然后就发现n就变成了0这样刚刚好就可以结束这个循环了。
2:for循环
for循环是三种循环中使用最多的。下面我们就对for进行学习
2.1:for循环语句的语法
for(表达式1;表达式2;表达式3)
语句//如果需要执行多条语句就用大括号包含这些语句
表达式1:用于对循环变量的初始化
表达式2:用于循环结束的判断
表达式3:用于循环变量的调整
2.2:for循环的执行流程
表达式1用来初始化变量,表达式2用来判断真假,真就执行语句,假的则循环结束,执行完 语句后就再到表达式3,通过表达式3来调节循环变量,然后再去表达式2判断是否满足条件, 从而决定循环是否继续。会发现整个循环过程中表达式1只会执行1次。
2.3:for循环的实践
例1:在屏幕上打印n以内的数
2.4:while循环和for循环的区别
会发现while循环和for循环中都有初始化、判断、调整这三部分,但是while的三个语句就比较分散,for循环的就集中在一起,当代码量大起来后,for循环就便于代码的维护,所以在代码阅读和代码维护上for循环体验感会好很多。
2.5:for循环的练习
练习1:计算1~100之间3的倍数的和
3:do.....while循环
在三种循环里do.....while循环是使用的最少的.
3.1:do.....while循环的语法
do
语句
while(表达式);
while循环和for循环都是先进行判断,如果条件满足才开始执行语句,不满足则结束循环
而do...while循环是先进入循环体,执行一次语句后,再执行while的表达式进行判断,表达式 为真则会进行下一次,假就跳出循环
3.2:do...while循环的执行流程
通过上图可以看出do....while循环先执行语句,,执行完语句后再进行表达式的判断
如果表达式的值为真,那么就继续循环执行语句,表达式为假则结束循环。
可以看出其与前面的while循环和for循环的区别就是,不过表达式是啥样的循环体都会执行一次
3.3:do....while循环的实例
例:在屏幕上打印n及n以内的数
3.4:do....while循环的练习
输⼊⼀个正整数,计算这个整数是⼏位数?
例如:
输⼊:1234 输出:4
输⼊:12 输出:2
4:break和continue语句
在循环执行的过程中,我们会遇到一些情况需要循环结束的,比如找一个数找到了这个循环 也应该结束,这在我们生活中也是很常见的情况,在C语言中提供了break和continue两个关 键字在循环中进行使用
4.1while中break和continue
break:
break的作用是用于永久跳出循环,只要执行break语句直接会跳出循环,执行后面的语句
如上面的代码所示,当i加到5后就满足if语句的条件执行了break语句后就结束了循环
continue:
是继续的意思,在循环中的作⽤就是跳过本次循环中 continue 后边的代码,继续进⾏ 下⼀ 次循环的判断。对上面的代码把break换成continue看看什么效果。
这里就陷入了死循环当i=5后,语句是直接跳出本次循环然后再进判断,这样就直接把i++这个语句跳过了,那么此时i还是5所以陷入了死循环。
将上面的代码修改一下,,将调整的表达式移动到前面虽然不会陷入死循环,但是打印的数的开 头发生了变化。
4.2:for中break和continue
break:
可以发现在for中的break和while中的效果是一样的,直接结束循环
continue:
可以看到代码当i=5的时候就执行continue语句,就跳出了本次循环,没有往下执行打印的那个语句,然后回到了调整的表达式,然后再回到判断表达。
do...while循环中和while中的是一样的所以就不做过多的说明了
5:循环的嵌套
通过前面的我们也对三个循环有了一定的理解了,在日常解决问题中,这三种循环往往嵌套 在一起才可以更好的解决问题。我们通过下面的练习来感受一下。
练习:找出100~200之间的素数,并打印在屏幕上。
注: 素数⼜称质数,只能被1和本⾝整除的数字。
题目分析:
1: 首先产生100~200的数,所以我们通过一个循环产生100~200的数
2:然后使用2至i-1的数去对i做除法运算,这里需要产生2~i-1之间的数字也可以通过循环 来实现
3:如果在2~i-1之间有数可以使得其整除那么就不是素数,反之则是
6:goto语句
C语言中提供的一种特殊的语法,是一种跳转语句和跳转标号,其可以实现在同一个函数内
跳转到设置好的标点处
可以看到代码在遇到goto语句后就会跳转到标点处
在多层循环中需要快速跳出循环的地方使用会比break语句要快。
标签:语句,C语言,break,while,循环,执行,表达式 From: https://blog.csdn.net/2302_81083101/article/details/143326294