循环结构程序设计

第4单元循环结构程序设计
反复执行某一条语句或一个语句块,这种结构称为“循环结构”或者“重复结构”。三种实现语句:while语句、do-while语句和for语句。

1.(1)while语句的格式“while(表达式){循环体}”当表达式成立时,不断重复执行循环体,又称“当型循环”,while循环先计算循环体,再回到原处判断真假,决定是否再次执行。注意:循环体中循环控制量的更新

(2)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的时候,退出循环}

2.do-while.用于解决至少执行一次重复操作的循环语句do while:do{循环体}while(表达式)do-while表示先执行一次语句,再进入循环,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。

3.for(;; ) 重复执行的操作次数固定,已知。for(表达式1;表达式2;表达式3){循环体}循环变量只在循环句内作用,除了循环句不作用。这是一个死循环,何为死循环,就是永不停止的循环。
注:次数确定,用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++);中的是分号,不是逗号,不然编译无法通过。

4.循环的嵌套使用(只想怎么处理问题,不要刻意去循环)
我们知道if-else可以嵌套使用,循环也是如此。循环的嵌套帮助代码提高了可执行性。

示例代码
(1)#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。

5.改变循环执行的状态
(1)用 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 只有一出现,就马上终止本次函数。

(2)使用 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整除时,不会打印出来。

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

6.(1)程序中常见错误:变量未赋初值、中间运算结果越界、if-else语句混乱、实数比较出错(2)通过添加输出语句调试程序(3)借助IDE的调试工具实施单步跟踪

重要注意:
(1)按顺序条件有次数确定的(看已知条件)和次数不确定的(找条件)循环次数计数有递增计数和递减计数
(2)输入任n个数(无规律){int I,sum,x,n;i=1;cin>>n;while(i<=n)cin>>x;sum+=x;i++;}
(3)通过flag=0/1来控制程序的进行!

收获:循环最重要的是看清变量及其变化的规律结果,再用一种较为简洁的方式写出。用循环嵌套来表示多种图案,主要利用其可以找到数学规律并表示出来的特点。

感悟:要多看看课本,熟悉内容。循环最重要的是审清题目所要表达的意思,题目有点难想,但是可以多做做题,看看题,熟练了以后就好做多了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值