循环语句
这章我们来谈谈三种循环语句(for循环,while循环,do-while循环)
1. for循环
for循环应该是平时用的比较多的一种,也是一种容易理解的循环。
for循环语法:
for(表达式1 ;表达式2 ;表达式3)
{
语句
}
强调一下:
1.表达式1 表达式2 表达式3,两两之间用 ; 隔开,记住不要写成逗号
2.for()后面不要加 ;
因为for循环只能控制后面的一条语句,如果加了;那么for循环只能控制到这 ;就结束了,下面的大括号包含的语句就不属于for循环了。
1.1 for循环中表达式的执行过程
表达式1:初始化数值,然后执行表达式2 例子:int i = 0
表达式2:判断该表达式是否为真,真则执行for循环指定的嵌套语句,然后执行表达式3 例子:i < 10:
表达式3:增减值 例子:i++
1.2代码实例
*给大家举个简单for循环的例子:打印1-9数字。
代码:
#include<stdio.h>
int main()
{
int i = 0;
for(i = 1 ;i < 10 ;i++)
{
printf("%d ",i);
}
return 0;
}
效果:
1 2 3 4 5 6 7 8 9
***现在来加一点难度:求1+2+3+…+99+100的总和。
代码:
#include<stdio.h>
int main() {
int i = 0;
int sum = 0;//sum是总和的意思
for (i = 1; i <= 100; i++) {
sum = sum + i;//每次i+1 sum再加i
}
printf("sum = %d\n",sum);
return 0;
}
for循环还有很多玩法,大家可以自己去玩一下。
2. while循环
while循环跟for循环一样很常用,也比较好理解,和for循环不同的是初始化条件搬到了最前面,增值表达式搬到了语句里面。
while循环语法:
while(控制循环表达式)
{
(语句)
}
2.1代码演示
简单举个例子:打印10遍 大师我悟了!
代码:
int n = 10;
while(n > 0) {
printf("大师,我悟了!\n");
n--;
}
效果:
初始化循环变量n的值,给定循环条件n>0,每执行一次printf语句,n的值-1,当执行到n的值不符合判断条件时结束循环。
注意:如果在循环体内忘了对影响循环控制表达式的变量(就是这个 n)进行改变,就会使这个循环变成死循环。
3. do-while循环
Q:do-while循环和while循环有区别吗?
A:这不是废话吗,名字都不一样。while循环执行循环体前会判断一下循环控制表达式,而do-while循环会在执行循环控制表达式前先执行一遍循环体。
do-while循环语法:
do
{
(语句)
}while(循环控制表达式);
3.1代码演示
do-while循环在有些时候还是非常好用的
例:打印1-10数字
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i = i + 1;
}while(i<=10);
return 0;
}
效果:
1 2 3 4 5 6 7 8 9 10
4. break和continue
break和continue语句
break 和do while 循环,因为n即使是在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中提供了break和continue 两个关键字,就是应⽤到循环中的。
4.1 break 举例
break的作⽤是⽤于永久的终⽌循环,只要break 被执⾏,直接就会跳出循环,继续往后执⾏。
代码演示:
#include<stdio.h>
int main() {
int i = 1;
while (i < 10) {
if (i == 5)
break; //当i等于5的时候,就执行break,循环终止
printf("%d ", i);
i = i + 1;
}
return 0;
}
效果:
打印了1,2,3,4后,当i等于5的时候,循环在 break 的地⽅终⽌,不再打印,不再循环。所以 break 的作⽤就是永久的终⽌循环,只要break 被执⾏,break 外的第⼀层循环就终⽌了。
那以后我们在循环中,想在某种条件下终⽌循环,则可以使⽤break 来完成我们想要的效果。
4.2 continue 举例
continue 是继续的意思,在循环中的作⽤就是跳过本次循环中下⼀次循环的判断。
那如果我们把上面代码的 break 换成 continu 会怎么样呢?
代码演示:
#include<stdio.h>
int main() {
int i = 1;
while (i < 10) {
if (i == 6)
continue; //当i等于5的时候,就执行continue,直接跳过continue下面的代码,去循环判断的地方
//因为跳过了i=i+1,所以i一直等于5,陷入死循环
printf("%d ", i);
i = i + 1;
}
return 0;
}
效果:
到这⾥我们就能分析出来,continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接到循环的判断部分,进⾏下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成死循环。
简单吧,有没有悟了的感觉
悟了的小伙伴点个
再走吧,顺便关注一下!