目录
把一件事循环往复的去做,这就是循环,C语言里面有三种循环。
- whlie
- for
- do while
1:while循环
我们已经掌握了if语句
if(条件)
语句;
当条件满足的情况下,if在语句后的语句执行,否则不执行,这个语句只会执行一次。
如果想执行多次,我们可以使用while语句。
while 语法结构
while(表达式)
循环语句;
例一:在屏幕上打印0到10的数字
#include <stdio.h>
int main()
{
int a = 0; //定义一个变量a
while (a <=10 ) //while循环,如果a小于等于10就进入循环
{ //注意while循环后面默认执行一条语句
//如果想执行多条语句,就需要用{}括起来
printf("%d",a); //打印a
a++;
}
return 0;
}
1.1:while语句整的break和continue
在while语句的执行流程中是有break和continue,一个意思是打断,一个意思的继续,下面我们就来认识他们的用法。
break
在我们的例一中加入break语句,他的执行效果就会如下图
我们先加入了一个if语句,条件是a如果等于5,就break,可以看到他打印的效果变成了01234,由此可得:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的。
continue
在我们的例一中加入continue语句,他的执行效果就会如下图
在这里代码就死循环了。
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断,上述中a会一直是5,然后一直判断,所以就死循环了。
2:for循环
for语法结构
初始化 判断 调试
for(表达式1;表达式2;表达式3)
循环语句;
使用for在屏幕上打印1-10
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d",i);
}
return 0;
}
2.1:for语句整的break和continue
在for语句的执行流程中也是有break和continue,下面我们就来认识他们的用法。
break
如果我们在上述代码中添加break,他的运结果如下
for循环中的break和while中的break用法是一样的,都是终止循环。
continue
如图所示我们会发现这次没有死循环,而是跳过了5,原因就是 continue跳过的是continue后边的代码,而在for循环中,调整语句(i++)已经在continue前面了,所注意这次知识跳过了本次循环,而不是成为死循环,由此可得,for循环比while循环更不容易写出死循环。
2.2:for语句的循环控制变量
1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
int i = 0;
//前闭后开的写法
for(i=0; i<10; i++)
{}
//两边都是闭区间
for(i=0; i<=9; i++)
{}
2.3:for循环的一些变种
for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问 题,如上所示,代码死循环了。
for循环时可以嵌套使用的。
如图所示它会打印9次hehe,因为第一个for循环里面会循环三次进到第二个for循环,
而第二个for循环也会运行三次。
如果我们省略掉初始化部分,这里就发生了变化。
当我们去掉初始化部分,他的结果就会打印三个hehe,之所以这样,是因为里面的for循环循环三次后,j永远都会是三,再进入循环里面他就不会改变,就是因为不能初始化。
使用多余一个变量控制循环
int x, y;
for (x = 0, y = 0; x<2 && y<5; ++x, y++)
{
printf("hehe\n");
}
return 0;
}
这里满足条件的话,最终只会打印两个hehe
3:do...while循环
do...while语法结构
do
循环语句;
while(表达式);
3.1 do语句的特点
循环至少执行一次,使用的场景有限,所以不是经常使用。
使用do...while在屏幕上打印1-10
注:循环体里面超过两条语句一定要用大括号括起来
do...while语句和while语句的区别就是一个是先执行再判断,一个是先判断再执行
do...while语句里的循环至少执行一次
do while循环中的break和continue
break
在上述代码中添加break,运行结果如下
因为他是先执行再判断,所以5也会打印出来
continue
这里可以看到,代码死循环了
因为continue直接跳过了里面的i++,所以i永远都是5。