循环结构设计

循环结构设计

C语言有2种常用的循环结构,分别是for循环和while循环。其中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;i=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的时候,退出循环

}

经常用到的while语句还有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整除时,不会打印出来。

7) continue 和 break 的区别
continue 只结束 本次 循环(即使不满足条件的那次循环)
break 是提前终止这个循环,函数遇到 break 将不再运行。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值