无限循环当然数c语言,C语言第5章循环结构程序设计

《C语言第5章循环结构程序设计》由会员分享,可在线阅读,更多相关《C语言第5章循环结构程序设计(90页珍藏版)》请在人人文库网上搜索。

1、第五章是循环结构的程序设计,5.1是概述。序列结构和选择结构已经介绍过了,本章介绍了循环结构。如:总和=1 2 3 100;实际问题:一组重复的语句。它是通过圆形结构解决的。c语言使用四种形式的循环。do-while语句,3。声明4。break,continue and goto语句,1。在C语言中广泛使用的While语句,即5.2 while语句,通过判断循环控制条件是否满足来决定是否继续循环,也称为“时类型”循环。形式为: while(表达式)循环语句。2.首先执行过程:来判断表达式的值。如果为0。在它之后执行语句;否则,在执行完成时。一个特殊的等价循环语句while语句,3。流程图:当(。

2、i=100)和=i时,用while语句编写上述示例;我;该语句应该具有表达式=0。否则,将会有一个无限循环。注意: while后面的while语句一般是复合语句,即加法。让我们看下面的例子:5.1写一个程序,输入一个班级的学生成绩,并求全班的平均成绩。分析:输入分数和计算平均分数都是重复的过程,所以可以通过循环语句来实现。在这里,我们不知道有多少学生,也就是说,我们不知道有多少次循环,但考虑到没有负的分数,我们可以设置如下的循环条件:每当输入分数大于或等于0时,继续输入分数;当输入分数小于0时停止输入。解决问题的步骤如下:(1)输入分数(2)当“分数=0”时,做以下工作:累计总分;数字加1。输。

3、入下一个分数;(3)重复步骤(2),直到得分为0。程序:# includemain()浮点核心,平均值=0;/*average存储平均分数,初始值为0 */且int n=0;/*n用于存储学生人数。初始值为0*/scanf(%f,/*输入下一个学生的分数*/,如果(n!=0)平均值=平均值/n;/*平均分数,平均值*/printf(%6.2f,平均值);/*输出平均分数,保留两位小数*/当使用while语句时,我们应该注意以下两个问题:(1)如果循环体包含多个语句,应该用花括号括起来,并以复合语句的形式出现。如果没有花括号,while语句的作用域只能到达while之后的第一个分号。例如,在上面。

4、的例子中,如果while语句中没有花括号,那么while语句的作用域只有“average=score”。(2)在循环体中应该有语句使循环趋于结束。例如,在上面的例子中,循环结束的条件是“分数=0”,所以当我们输入这个类的所有等级时,我们必须输入一个负数才能执行程序。(3)循环语句不能执行一次。例如,在上面的例子中,当第一次输入的分数为负时,循环将不会执行一次。5.3 do while语句,do-while语句的特点是:首先执行循环体中的语句,然后判断表达式的值来决定是否继续循环,循环条件的测试在循环结束时进行。这是一个特殊的“直到-类型”循环语句。它的一般形式是: do loop语句while。

5、(表达式);3。过程:对于示例5.1,用do-while语句编写程序如下:#包括主()浮点分数,平均值=0;int n=0;做/*不做判断,首先进入循环*/扫描f(%f,/*输入学生的分数*/,如果(分数=0)平均=分数;n;而(得分=0);/*如果表达式不是0,继续*/如果(n!=0)平均值/=n;/*平均分数,平均值*/printf(%6.2f,平均值);/*输出平均分数,保留两个小数位*/,例如,程序5.2找到1 3 5 7 9等数字的总和。如果累计数大于750,程序终止并输出结果。main() int i=1,sum=0;而(sum=750)sum=sum I;I=I 2;printf。

6、(n%d,总和);在示例5.3中,使用do-while语句查找满足“2除3、3除5和2除7”的1到1000之间的数字,并且一行中只打印五个数字。分析:确定一个数被另一个数除,并使用模运算。这三个条件是“和”的关系。一行可以打印五个数字,可以通过数到五然后输入新的一行来包装。程序代码如下:#include main() int i=1,j=0;如果(i%3=2,请执行此操作注:1。do-while语句的循环体语句应该至少执行一次,因为它在进入循环后区分表达式。While语句首先区分表达式。如果表达式值为0,则不会执行一次。2.必须在循环体中更改循环控制变量,以便while和do-while语句的。

7、循环控制条件表达式的值可以连续更改,直到循环结束。否则,它将导致无限循环。例如:I=1;而(I=100)put char(*);我;这个循环永远不会结束,因为“我”该语句不属于循环体中的语句,循环控制变量I在循环体中不变。该程序应更改如下:I=1;而(I=100)put char(*);我;执行这个循环语句的结果是输出100 * 。您也可以将其转换为do-while语句:I=1;do put char(*);我;而(I=100);如您所见,对于同一个问题,您可以使用while语句或do-while语句。那么,它们之间有什么区别呢?while语句和dowhile语句的区别:第一次执行时,如果表达。

8、式=0,while语句与do while语句不同,do while只执行下面的语句一次,而不执行。5.3对于语句,1。一般形式,首先计算表达式1,然后执行表达式2,如果表达式2的值为0,执行语句,然后计算表达式3,然后判断表达式2的值。重复此操作,直到表达式2的值为0(假)。for语句是C语言中最有特色的循环语句,它使用起来最灵活、最方便。用于(表达式1;表达式2;表达式3)循环语句,2。进程:计算表达式1,查找表达式2的值,语句,计算表达式3,=0(假),0(真),2。首先执行过程(1)求解表达式1。(2)求解表达式2。如果其值为真(该值不是0),则执行for语句中指定的循环语句,然后执行以。

9、下步骤(3)。如果为假(值为0),结束循环并转到步骤(5)。(3)求解表达式3。(4)返回上述步骤(2)并继续执行。(5)循环结束后,执行for语句下面的语句。用for语句编写上述示例,并使用process表达式1代替while for而(表达式2)语句表达式3;对于(I=1;i=100I)sum=I;for语句可以完全由while代替,但for是直观、简单和方便的。for语句中每个表达式的含义(1)表达式1:初始值表达式,用于在循环开始前设置循环变量的初始值。(2)表达式2:循环控制逻辑表达式,它控制循环执行的条件并确定循环的数量。(3)表达式3:循环控制变量的修改表达式定义了一次循环控制变。

10、量的变化。注意:表达式1、表达式2和表达式3必须用分号分隔。只要条件为真,for循环将始终执行。一旦条件变为假,程序将从紧接着for循环的语句重新启动。循环语句:重复执行的语句。下面通过一个例子来看for语句的执行过程。示例5.4在屏幕上打印从1到100的数字。当然,我们可以使用100个printf语句来解决这个问题,但是当要打印的数量很大时,显然不适合使用这个方法,我们可以使用for循环语句来实现它。程序如下:# include main()int x;对于(x=1;x=100x ) printf(%d,x);在这个程序中,x被初始化为1,因为x小于100,调用printf语句x 1并测试x。

11、,看它是否仍然小于或等于100。重复这个过程,直到x大于100,循环结束。在本例中,x是循环控制变量:每次循环重复时,x都会改变,并检查x。例5.5程序计算s=1 2 3 100分析:这个问题可以用循环语句编程,循环控制变量I从1增加到100。假设s的初始值为0,则循环体为:s=s I;/*i=l,2,100*/程序:#include main() int s0,I;for(il;i100I)s=s I;/* loop语句*/printf(s%d,s);在上面的程序中,for语句的执行过程是:计算表达式1“il;获取回路控制变量的初始值;求解表达式2,如果表达式2的值为零(当x100时),结束。

12、for循环;执行循环体语句“ss I;解表达式3,“我”,然后转到步骤。对于For循环,非常重要的是条件测试总是在循环开始时执行。如果在循环开始时条件为假,循环语句将不会执行。例如,int i=10对于(k=10k!=i。k ) printf(%d,k);printf(%d,k);在这个循环程序段中,在循环的开始,因为i=k,它根本不会被执行。正是因为条件表达式为假,循环语句和循环的增量部分将不会被执行。因此,k总是10,最后屏幕上输出的数字也是10。写一个程序来计算s=1-3 5-7-99 101。这个例子也可以看作是数字的累加,但它与上面的例子略有不同,即相加的数字是一个正一个负。程序代码。

13、如下:#包括main() int i,t=1,s=0;对于(I=1;i=101I=2)t=t * I;s=s t;t=(-t)/I;/*正1,负1交叉*/printf(%dn,s);for语句和while语句之间的比较for语句等效于以下语句序列:表达式1;而(表达式2)语句;表达式3;相比之下,for语句简洁明了。1.表达式的省略号如果在for语句之前将初始值赋给循环变量,则表达式1可以省略,但其后的分号不能省略。例如5.2,循环语句可以写成如下形式:I=1;/*将初始值赋给for语句*/for()之前的循环变量;i100I)s=s I;如果省略表达式3,应该在for语句的循环体中修改循环控。

14、制变量。例如:for(i1;i100)ss I;我;/*修改循环控制变量*/。如果省略了表达式1和表达式3,则for语句等同于while语句。例如:il。/*在for语句* /*for()之前,将初始值赋给循环变量;i100)ss I;我;/*修改回路控制变量*/,相当于:I=1;而(I=100)s=s I;我;如果这三个表达式都被省略,则for是一个没有循环终止条件的循环,因此有可能形成一个无限循环,如下例所示:)(我将永远奔跑。实际上,对于(;)语句不能保证循环会无限期地继续下去。当在循环体中遇到break语句时,它将立即导致循环退出。例如:il;对于(;)ss I;我;如果(i100)断开;/*如果i100,退出循环*/,2。for语句中的逗号表达式逗号运算符主要用于for语句。for语句中的表达式l和3可以是逗号表达式,尤其是当两个循环变量参与循环控制时。如果表达式1和表达式3是逗号表达式,程序将非常清楚。例如:#include main() int i,j;对于(i1,j10i。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值