目录
C语言有2种常用的循环结构,分别是for循环和while循环,下面我们先看for循环。
for循环
for(;;) 这是一个死循环,死循环,就是永不停止的循环。
比如
for(;;){
puts("123"); //会无限打印123
}
--------------------分割线------------------
int i;
for(i=0;i<10;++i){
printf("hello world\n");
}
该语句表示,循环打印10次hello world。首先i=0;是初始值,满足i<10这个条件,所以打印一次hello world,然后i自增1,此时i=2; 2<10。满足条件,再打印一次hello world,i再自增1,当i不满足i<10这个条件时,跳出循环。
如果我们一开始就给i赋值,int i=0;那么循环可以写成for(i;i<10;++i);
这里需要特别注意的是,for(i;i<10;++i)中的是分号,不是逗号,这是我们初学者常犯的错误。
while循环
while(1) 表示死循环,当然,写while(1)只是习惯与美观,可以写成while(100),while(-10),都是可以的,只要括号内是非0的数值都成立。
int i=0;
while(i<10){
printf("a"); //表示打印10次a 发现比使用for(i=0;i<10;i++);要简便,因为不需要写太多分号。
i++; //打印完一次a,i自加1,当i不满足条件i<10的时候,退出循环
}
do while循环
do-while表示先执行一次语句,再进入循环,while则是直接进入循环。下面我们通过代码来看看do-while语句
示例代码
//先做了一次,再去执行循环体,即使循环不成立,也会打印一次。
#include<stdio.h>
int main()
{
int i=1;
do
{
printf("%d\n",i++);
}
while(i<10);
return 0;
}
//当我们把while(i<10);改为while(i<1); 这时候while条件不成立,但是也会打印出一个1。
循环的嵌套使用
我们知道if-else可以嵌套使用,循环也是如此。循环的嵌套帮助代码提高了可执行性,比如接下来介绍的冒泡排序,选择排序法等,都会使用到循环的嵌套,下面我们通过一个简单的代码说明一下循环的嵌套使用。
示例代码
#include<stdio.h>
int main()
{
int a=5;
int i;
while(a>0)
{
printf("data= %d\n",a);
a--;
for(i=0;i<3;i++)
{
printf("hello,world\n"); //a每输出一次,就打印3次hello world,直到a不满足a>0。
}
}
return 0;
}
可以看到,当a> 0 的时候,打印a目前的值,然后a自减1,此时进入for循环,执行打印hellworld的操作。当打印了3次hellworld以后,才退出for循环,再回到while循环,直到a>0不再成立。
改变循环执行的状态
C语言中用 break 语句提前终止本次循环:
示例代码:
#include<stdio.h>
int main()
{
int a=5;
int i;
while(a>0)
{
printf("data= %d\n",a);
a--;
break;
for(i=0;i<3;i++)
{
printf("hello,world\n"); //打印3次hello world
}
}
return 0;
}
经过编译可以看到,系统只打印了一个5,并没有打印hello,world,因为我们已经用 break 语句提前终止循环
所以后面的代码将不再运行, break 只有一出现,就马上终止本次函数。
C语言中使用 continue 语句提前结束本次循环:
#include<stdio.h>
int main()
{
int a=100;
for(;a<=200;a++)
{
if(a % 5 == 0)
continue; //当a能被5整除时,函数跳过printf语句,回到for循环继续判断a的值。
printf("%d",a);
}
printf("\n"); //换行
return 0;
}
通过编译可以看到 当a能被3整除时,不会打印出来。
continue 和 break 的区别
continue 只结束 本次 循环(即使不满足条件的那次循环)
break 是提前终止这个循环。
下一篇 C语言数组
欢迎大家百忙之中关注我的微信公众号 编程骑士 领取C语言学习电子书以及各种资料,留言交流,共同进步。