C语言:第六章 循环控制

合集下载

06-循环控制(1)

06-循环控制(1)
sum=0, i=1 sum=0, i=1
当 型 循 环
i≤100



到 型 循 环
sum=sum +i; i=i+1;

sum=sum +i; i=i+1;
i<=100

输出sum的值 的值 输出
输出sum的值 的值 输出 4
§6.3 while 语句实现当型循环
格式: (表达式 表达式) 格式: while (表达式) 语句
语句的一般格式为: for 语句的一般格式为: (变量赋初值 执行循环体的条件;循环变量增值) 变量赋初值; for (变量赋初值;执行循环体的条件;循环变量增值) 语句
19
从键盘上输入10个整数 个整数,求总和及平均值 举例 从键盘上输入 个整数 求总和及平均值
main( ) { int x, i; float sum=0, aver; for ( i=1;i<=10; i++) { scanf("%d",&x); sum+=x; } aver=sum/10; printf("sum=%.0f,aver=%.2f\n",sum,aver); }
表达式
真(非0) 非
假(0)
当表达式为真 语句(循环体) 语句(循环体)
当 型 循 环
语句( 语句(循环体)
注意:循环体可能一次也不被执行 注意:
5
语句求1—100之间整数和 举例 用while语句求 语句求 之间整数和
例6.2(P107) ( )
main( ) 这是一个 while语句 sum=0,i=1 语句 , { int i,sum; sum=0; i=1; 当i ≤100 while( i<=100) sum= sum+i { sum=sum+i; i = i +1 i++; 输出sum的值 输出 的值 } printf("i=%d,sum=%d\n",i,sum); }

《循环控制》课件

《循环控制》课件

结束条件
当满足退出条件时,循环终止 ,程序继续执行后续任务或流 程。
03 循环控制的实现 方式
使用for循环实现循环控制
总结词
for循环是一种常见的循环控制结 构,适用于已知循环次数的情况 。
详细描述
在for循环中,通常会指定一个计 数器变量,并设置其初值、条件 和增量。当条件满足时,循环体 将会被执行指定的次数。
使用while循环实现循环控制
• i;
使用while循环实现循环控制
}
```
使用do-while循环实现循环控制
总结词
do-while循环与while循环类似,但至少会执行一次循环体,然后再检查条件 。
详细描述
在do-while循环中,无论条件是否满足,循环体至少会被执行一次。然后,根 据条件的真假来决定是否继续执行循环体。
05 循环控制的实例 应用
在数据排序中的应用
冒泡排序
通过多次遍历列表,比较相邻元素并 交换位置,使得较大的元素逐渐向列 表的末尾“冒泡”,最终实现列表的 排序。
选择排序
插入排序
将待排序的元素插入到已排序的子列 表中,使得子列表保持有序,直到所 有元素都插入完毕。
每次遍历列表,找到最小(或最大) 的元素,将其与当前位置的元素交换 ,直到整个列表排序完成。
动画播放
通过循环控制,可以按照一定的时间间隔播放游戏角色的动画,以 实现连续的动作效果。
游戏循环
游戏的主循环也是通过循环控制来实现的,它负责不断更新游戏状 态、渲染游戏画面和处理用户输入。
THANKS
感谢观看
提高代码效率
通过重复执行某段代码, 可以减少重复编写相同代 码的工作量。
处理重复性任务

C语言设计课件:第6章 循环控制

C语言设计课件:第6章 循环控制

6.5 for语句
for 语句较前两种循环语句更简洁、更灵活, 特别是处理循环次数确定的问题。
for语句的语法格式为: for(表达式1;表达式2;表达式3)
循环体语句
其中,表达式1为赋初值表达式 表达式2为条件表达式 表达式3为循环变量增值表达式
例:求n! (n=10) int main( ) { int n,k,s=1;
scanf(“%d”,&n); i=1; s=0; do { s+=i; /*累加*/
i+=2; } while(i<=n); /*必须使用分号*/ printf(“s=%d”,s); }
课堂实践
1、从键盘上输入若干整数,求其中正偶 数之和。以-1作为输入结束标志。
#include "stdio.h" int main() {
scanf("%d", &n);while (n>0)
do
{ s+=n%10;
{ s+=n%10; n/=10;
n/=10;
}
}
while(n>0); printf("\n sum=%d", s);
printf("\n sum=%redt",ursn); 0;
return 0; }
}
课堂实践3
输入一个整数,求该数是几位数,按顺 序输出它的每一位数字(以空格分隔); 按逆序输出它的每一位数字(以空格分隔 )。
例:求s=1+3+5+…n (n为奇数且n>=1)
6.4 do…while语句
do_while语句的特点是“先执行循环体,后 判断循环条件”,当条件成立时继续执行循环 体,条件不成立时结束循环。

第6章 循环控制

第6章 循环控制

例6.2 求1到3的和
#include <stdio.h> void main() { int i,sum=0; i=1; while (i<=3) { sum=sum+i; i++; } }
printf(″%d\n″,sum);
注意:
循环体如果包含一个以上的语句,应该用花括弧括起来,以 复合语句形式出现。
例6.9 求100~200间的全部素数。
判断m是否为素数的方法:让m被 m 除,如果m能被2 — 的任何一个整数整除,则不是素数,否则为素数。
m

#include <stdio.h> # include <math.h> void main() { int m,k,i,n=0; for(m=101; m<=200; m=m+2) { k=sqrt(m); for (i=2;i<=k;i++) { if (m%i==0) break; } if ( i==(k+1)) { printf(“%d “,m); n=n+1; }
} printf(″%c\n″,c);
} }
1.从输入的若干个整型值中选出最大的一个,以-32768结束
#include<stdio.h> void main() { int input,max; while(input!=-32768) { scanf(“%d”,&input); if(input>max) max=input: } } #include<stdio.h> void main() { int input,max; scanf(“%d”,&input); max=input; while(input!=-32768) { scanf(“%d”,&input); if(input>max) max=input: }}

c语言循环控制语句

c语言循环控制语句

c语⾔循环控制语句循环控制结构(⼜称重复结构)是程序中的另⼀个基本结构.在实际问题中,常常需要进⾏⼤量的重复处理,循环结构可以使我们只写很少的语句,⽽让计算机反复执⾏,从⽽完成⼤量类同的计算.C语⾔提供了while语句、do...while语句和for语句实现循环结构.3.4.1while语句while语句是当型循环控制语句,⼀般形式为:while<表达式>语句;语句部分称为循环体,当需要执⾏多条语句时,应使⽤复合语句.while语句的流程图见图3-8,其特点是先判断,后执⾏,若条件不成⽴,有可能⼀次也不执⾏.[例3-11]求n!分析:n!=n*(n-1)*(n-2)*..2*1,0!=1.即S0=1,Sn=Sn-1*n.可以从S0开始,依次求出S1、S2、...Sn.统⼀令S等于阶乘值,S的初值为0!=1;变量i为计数器,i从1变到n,每⼀步令S=S*i,则最终S中的值就是n!.流程图见图3-9,程序如下:考察图3-9中循环部分的流程图可以看出,在循环前各变量应有合适的值(s=1),另外,控制循环结束的变量(此处为i)必须在循环体中被改变,否则,循环将⽆限进⾏下去,成为死循环.本题中,将多项式的每⼀项⽤t表⽰,s代表符号,在每⼀次循环中,只要改变s、n的值,就可求出每⼀项t.⼀般情况下,while型循环最适合于这种情况:知道控制循环的条件为某个逻辑表达式的值,⽽且该表达式的值会在循环中被改变,如同例3-12的情况⼀样.3.4.2do...while语句在C语句中,直到型循环的语句是do...while,它的⼀般形式为:do语句while<表达式>其中语句通常为复合语句,称为循环体.do...while语句的流程图见图3-10,其基本特点是:先执⾏后判断,因此,循环体⾄少被执⾏⼀次.但需要注意的是,do...while与标准的直到型循环有⼀个极为重要的区别,直到型循环是当条件为真时结束循环,⽽do...while 语句恰恰相反,当条件为真时循环,⼀旦条件为假,⽴即结束循环,请注意do...while语句的这⼀特点.例[3-13]计算sin(x)=x-x3/3!+x5/5!-x7/7!+...直到最后⼀项的绝对值⼩于1e-7时为⽌.分析:这道题使⽤递推⽅法来做.让多项式的每⼀项与⼀个变量n对应,n的值依次为1,3,5,7,...,从多项式的前⼀项算后⼀项,只需将前⼀项乘⼀个因⼦:(-x2)/((n-1)*n)⽤s表⽰多项式的值,⽤t表⽰每⼀项的值,程序如下:#include# includem a i n ( ){double s,t,x ;int n ;printf("please input x :");scanf("%lf",&x);t=x;n=1;s=x;do{n=n+2;t=t*(-x*x)/((float)(n)-1)/(float)(n);s=s+t;}while(fabs(t)>=1e-7);printf("sin(%f)=%lf,"x,s);}运⾏结果如下:RUN?pleaseinputx:1.5753?sin(1.575300)=0.999990RUN?pleaseinputx:-0.65?sin(-0.650000)=-0.6051863.4.3for语句for语句是循环控制结构中使⽤最⼴泛的⼀种循环控制语句,特别适合已知循环次数的情况.它的⼀般形式为:for(<表达式1>;<表达式2>;<表达式3>)语句for语句很好地体现了正确表达循环结构应注意的三个问题:1)控制变量的初始化.2)循环的条件.3)循环控制变量的更新.表达式1:⼀般为赋值表达式,给控制变量赋初值;表达式2:关系表达式或逻辑表达式,循环控制条件;表达式3:⼀般为赋值表达式,给控制变量增量或减量.语句:循环体,当有多条语句时,必须使⽤复合语句.for循环的流程图如图3-11,其执⾏过程如下:⾸先计算表达式1,然后计算表达式2,若表达式2为真,则执⾏循环体;否则,退出for 循环,执⾏for循环后的语句.如果执⾏了循环体,则循环体每执⾏⼀次,都计算表达式3,然后重新计算表达式2,依此循环,直⾄表达式2的值为假,退出循环.[例3-14]计算⾃然数1到n的平⽅和.# include# includemain ( ){int i;float s;printf("please input n :");scanf("%d",&n);s=0.0;for(i=1;i<=n;i++)s=s+(float)(i)*(float)(i);printf("1*1+2*2+...+%d*%d=%f\,nn",n,s);}运⾏结果如下:RUNplease input n:51*1+2*2+...+5*5=55.000000for语句的⼏种格式for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略.a.for(;;)语句;这是⼀个死循环,⼀般⽤条件表达式加break语句在循环体内适当位置,⼀旦条件满⾜时,⽤break语句跳出for循环.例如,在编制菜单控制程序时,可以如下:for(;;){printf("please input choice(Q=Exit):");显/*⽰菜单语句块:*/scanf("%c",&ch);if(ch=='Q')or(ch=='q')break;语/*句段*/}b.for(;表达式2;表达式3)使⽤条件是:循环控制变量的初值不是已知常量,⽽是在前⾯通过计算得到,例如:i=m-n;for(;ic.for(表达式1;表达式2;)语句⼀般当循环控制变量⾮规则变化,⽽且循环体中有更新控制变量的语句时使⽤.例如:for(i=1;i<=100;){i=i*2+1;}d.for(i=1,j=n;i在for语句中,表达式1、表达式3都可以有⼀项或多项,如本例中,表达式1同时为i和j 赋初值,表达式3同时改变i和j的值.当有不⽌⼀项时,各项之间⽤逗号“,”分隔.另外,C语⾔还允许在循环体内改变循环变量的值,这在某些程序的设计中是很有⽤的.到此,我们已经学习了C语⾔中三种循环控制语句while、do...while和for语句,下⾯再讨论两个问题:三种语句的选⽤同⼀个问题,往往既可以⽤while语句解决,也可以⽤do...while或者for语句来解决,但在实际应⽤中,应根据具体情况来选⽤不同的循环语句,选⽤的⼀般原则是:1)如果循环次数在执⾏循环体之前就已确定,⼀般⽤for语句;如果循环次数是由循环体的执⾏情况确定的,⼀般⽤while语句或者do...while语句.2)当循环体⾄少执⾏⼀次时,⽤do...while语句,反之,如果循环体可能⼀次也不执⾏,选⽤while语句.循环的嵌套⼀个循环的循环体中有另⼀个循环叫循环嵌套.这种嵌套过程可以有很多重.⼀个循环外⾯仅包围⼀层循环叫⼆重循环;⼀个循环外⾯包围两层循环叫三重循环;⼀个循环外⾯包围多层循环叫多重循环.三种循环语句for、while、do...while可以互相嵌套⾃由组合.但要注意的是,各循环必须完整,相互之间绝不允许交叉.如下⾯这种形式是不允许的:do{for(;;){......}while();}[例3-15]打印8⾏7列的星形矩阵.流程图见图3-12,程序如下:#includemain(){inti,j;for(i=0;i<8,i++)/*控制⾏*/{for(j=0;j<7>;j++)/*控制列*/printf("*");printf("\n");/*换⾏*/}}打印结果如下:RUN********************************************************将程序中for(j=0;j<7;j++)改为for(j=0;j打印三⾓形.3.4.4break与continue语句有时,我们需要在循环体中提前跳出循环,或者在满⾜某种条件下,不执⾏循环中剩下的语句⽽⽴即从头开始新的⼀轮循环,这时就要⽤到break和continue语句.1.break语句在前⾯学习switch语句时,我们已经接触到break语句,在case⼦句执⾏完后,通过break 语句使控制⽴即跳出switch结构.在循环语句中,break语句的作⽤是在循环体中测试到应⽴即结束循环时,使控制⽴即跳出循环结构,转⽽执⾏循环语句后的语句.[例3-16]打印半径为1到10的圆的⾯积,若⾯积超过100,则不予打印.#includemain(){intr;float area;for(r=1;r<=10;r++){area=3.141593*r*r;if(area>100.0)break;printf("square=%f\n",area);}printf("nowr=%d\n",r);}运⾏程序:RUNsquare=3.141593square=12.566373square=28.274338square=50.265488square=78.539825nowr=6当break处于嵌套结构中时,它将只跳出最内层结构,⽽对外层结构⽆影响.2.continue语句continue语句只能⽤于循环结构中,⼀旦执⾏了continue语句,程序就跳过循环体中位于该语句后的所有语句,提前结束本次循环周期并开始新⼀轮循环.[例3-17]计算半径为1到15的圆的⾯积,仅打印出超过50的圆⾯积.#includemain(){int r;float area;for(r=1;r<=5;r++){area=3.141593*r*r;if(area<50.0)continue;printf("square=%f",area);}}结果为:RUNsquare=50.265488square=78.539825同break⼀样,continue语句也仅仅影响该语句本⾝所处的循环层,⽽对外层循环没有影响.3.4.5程序应⽤举例[例3-18]验证哥德巴赫猜想:任⼀充分⼤的偶数,可以⽤两个素数之和表⽰,例如:4=2+26=3+3......98=19+79哥德巴赫猜想是世界著名的数学难题,⾄今未能在理论上得到证明,⾃从计算机出现后,⼈们就开始⽤计算机去尝试解各种各样的数学难题,包括费马⼤定理、四⾊问题、哥德巴赫猜想等,虽然计算机⽆法从理论上严密地证明它们,⽽只能在很有限的范围内对其进⾏检验,但也不失其意义.费马⼤定理已于1994年得到证明,⽽哥德巴赫猜想这枚数学王冠上的宝⽯,⾄今⽆⼈能及.分析:我们先不考虑怎样判断⼀个数是否为素数,⽽从整体上对这个问题进⾏考虑,可以这样做:读⼊⼀个偶数n,将它分成p和q,使n=p+q.怎样分呢?可以令p从2开始,每次加1,⽽令q=n-p,如果p、q均为素数,则正为所求,否则令p=p+q再试.其基本算法如下:1)读⼊⼤于3的偶数n.2)P=13)do{4)p=p+1;q=n-p;5)p是素数吗?6)q是素数吗?7)}whilep、q有⼀个不是素数.8)输出n=p+q.为了判明p、q是否是素数,我们设置两个标志量flag p和flag q,初始值为0,若p是素数,令flag p=1,若q是素数,令flagq=1,于是第7步变成:7)}while(flag p*flag q==0);再来分析第5、第6步,怎样判断⼀个数是不是素数呢?素数就是除了1和它⾃⾝外,不能被任何数整除的整数,由定义可知:2、3、5、7、11、13、17、19等是素数;1、4、6、8、9、10、12、14等不是素数;要判断i是否是素数,最简单的办法是⽤2、3、4、??i-1这些数依次去除i,看能否除尽,若被其中之⼀除尽,则i不是素数,反之,i是素数.但其实,没必要⽤那么多的数去除,实际上,⽤反证法很容易证明,如果⼩于等于i的平⽅根的数都除不尽,则i必是素数.于是,上述算法中的第5步、第6步可以细化为:第5)步p是素数吗?flag p=1;for(j=2;j<=[sqrt(p)];j++)ifp除以j的余数=0{flag p=0;break;}第6)步q是素数吗?flag q=1;for(j=2;j<=[sqrt(q)];j++)ifq除以j的余数=0{flag q=0;break;}程序如下:#include#includemain(){intj,n,p,q,flag p,flag q;printf("please input n:");scanf("%d",&n);if(((n%2)!=0)||(n<=4))printf("inputdataerror!\n");else{p=1;do{p=p+1;q=n-p;flag p=1;for(j=2;j<=(int)(floor(sqrt((double)(p))));j++) {if((p%j)==0){flag p=0;break;}}flag q=1;for(j=2;j<=(int)(floor(sqrt((double)(q))));j++) { if((q%j)==0){flag q=0;break;}}}while(flag p*flag q==0);printf("%d=%d+%d\n,"n,p,q);}}程序运⾏结果如下:RUN?please input n:88=3+5RUNplease input n:98 98=19+79RUNplease input n:9 input data error!。

c语言循环控制表达式

c语言循环控制表达式

c语言循环控制表达式
C语言循环控制表达式是指在循环语句中控制循环执行的条件表达式。

在C语言中,循环控制表达式分为三种:while循环、do-while循环和for循环。

while循环是一种基本的循环类型。

它的语法格式为:while (循环条件) { 循环体 } 。

当循环条件为真时,执行循环体中的语句;当循环条件为假时,退出循环。

do-while循环和while循环的语法格式基本一致,不同之处在于do-while循环先执行一次循环体,然后再判断循环条件是否成立。

它的语法格式为:do { 循环体 } while (循环条件) 。

for循环是一种常用的循环类型,特别适合于循环次数已知的情况。

它的语法格式为:for (表达式1; 表达式2; 表达式3) { 循环体 } 。

其中,表达式1用于初始化循环控制变量;表达式2是循环条件,当循环条件为真时继续循环;表达式3用于更新循环控制变量的值。

在使用循环控制表达式时,需要注意循环条件的判断和控制变量的更新,避免死循环等问题的发生。

同时,可以根据具体情况选择不同的循环类型,以实现不同的循环功能。

- 1 -。

C语言 循环控制

C语言 循环控制

例:从键盘输入一行字符,以‘\n‟结束。分别统计出 英文字母、空格、数字和其他字符的个数。
#include <stdio.h>
main( ) { int letter=0, space=0, digital=0,other=0; char ch;
while((ch=getchar())!=„/n‟) { if(…) …
表达式2一般为关系表达式或逻辑表达式, 但可以是任何有效的表达式,只要其值为非零
就执行循环体 。
如 : for( i=0; (c=getchar( )) != '\n'; i+=c );
Байду номын сангаас
for(printf(“:”); scanf (“%d”, &x ) ; printf(“:”) )
例.求1!+2!+3!+4! +...…+19! +20! 递推公式:an= an-1*n a=a*n main( ) { double sum=0,a=1; int n; for (n=1;n<=20;n++) { a=a*n; sum+=a; } printf(“sum=%e\n",sum); }
§6.1
while语句
任意表达式
1.形式 while(表达式) 语句
2.特点 实现“当型”循环 先判断,后执行 当条件满足时,执行语句。
表达式 真(非0)
假(0)
语句
while的后续语句
有可能一次也不执行。
1+2+3+·+100 · · 例:用 while 语句实现1+2+3+4+5

C语言程序设计PPT课件第6章 循环控制结构

C语言程序设计PPT课件第6章 循环控制结构
2018/12/11 33/63
猜数游戏用到的库函数
每次运行程序时计算机所“想”的数都是一样的, 这是什么原因呢? – 函数rand()产生的只是伪随机数 随机函数srand – 为函数rand()设置随机数种子来实现对函数rand所产

生的伪随机数的 “随机化”

通过输入随机数种子,产生[0,100]之间的随机数
循环条件第一次就为假(如 输入-1)时会怎样?
16/63
【例6.1】计算并输出1+2+3+…+n的值
条 件P
真 假 假
当 型 循 环
A
2018/12/11 Testing Condition First
17/63
【例6.1】计算并输出1+2+3+…+n的值
A

条 件P

直 到 型 循 环
2018/12/11
使用了6个不同的变量 start Input n1 Input n2 Input n3 input n4 input n5 sum ← n1+n2+n3+n4+n5
n1
n2
2
3
n3
n4 n5
sum
4
5
6
20
output sum
2018/12/11
end
4/63
6.1循环控制结构与循环语句
如何对循环进行控制呢?
第6章 循环控制结构
本章学习内容
计数控制的循环 条件控制的循环 for语句,while语句,do-while语句 continue语句,break语句 嵌套循环 结构化程序设计的基本思想 程序调试与排错

C语言 循环控制

C语言 循环控制
2、三种循环可以循环嵌套。
21
第四节 程序举例(重点)
例6.8 数学问题 例6.9 判断某一个数是否是素数 例6-10 打印出以下图案。 附加: 求最大公约数和最小公倍数
22
高职教材
程序举例(重点)
C
例6.8 计算求和表达式:1-1/3+1/5-1/7+…的 近似值,直到最后一项的绝对值小于10-6为止。
for(i=2;i<=n-1;i++)
if(n%i= =0) {flag=0; break;}
if(flag= =1)
printf(“%d is a prime\n”,n);
else
printf(“%d is not a prime\n”,n);
}
C
30
高职教材
附加:求最大公约数和最小公倍数
C
• 给定任意二个正整数a,b求其最大公约 数?

前语句
循环体 yes
条件 No 后一语句
8
高职教材
C
例6-2 :用do while求1+2+3...+100

第 六
言章

序循
设环
计控

main() { int i,sum=0;
i=1; do {
sum+=i; i++; } while(i<=100); printf(“sum=%d\n”,sum);
32
高职教材
最大公约数的特点和思路
C
• 最大公约数小于或等于这二个数 中的最小者
• 同时整除这二个数。

第 六
言章
• •
先求得二个数a,b中的最小数 如果这个最小数能整除a和b,则

C语言谭浩强版第6章循环控制

C语言谭浩强版第6章循环控制

}
printf("%d",sum);
}
11.10.2020 11.10.2020
C语言程序设计
循环条件
sum=0+1 sum=1+2=3 sum=3+3=6 sum=6+4 …… sum=4950+100=5050 循环终值
循环体
第6 章循环控制
C语言程序设计
例 从键盘输入一组数据,以0结束输入,求数据和
第6 章循环控制
C语言程序设计
说明: ❖for语句中expr1, expr2 ,expr3 类型任意,都可省略
,但分号;不可省
❖无限循环: for(;;)
❖for语句可以转换成while结构
100
例 用for循环求 n n 1
#include <stdio.h>
main() { int i,sum=0;
scanf("%d",&i); do { sum+=i;
i++; }while(i<=10); printf("%d",sum); }
#include <stdio.h> void main() { int i,sum=0;
scanf("%d",&i); while(i<=10) { sum+=i;
}
11.10.2020 11.10.2020
第6 章循环控制
while语句
一般形式:
执行流程:
C语言程序设计
while(表达式) 循环体语句;
while
假(0) 表达式
真(非0) 循环体

C语言中的循环控制

C语言中的循环控制

C语言中的循环控制循环控制顾名思义就是重复执行某一个语句块,日常生活中也有很多需要重复执行的事,比如生产流水线等都是在重复执行某一件事。

程序中如果没有循环控制,那么当需要执行重复的指令时,程序将变得非常庞大,有时候也不是程序员能写出的,比如要重复一百万次,你不可能把语句写一百万遍,所以循环控制是多么的重要,任何一门程序设计语言都有循环控制语句,因此循环控制是多么的基础,打好基础才能进阶成大神。

下面就简要附上对每一种循环语句进行简要说明。

一、while(表达式)语句:其一般形式如下:while(表达式){语句块}执行流程图:说明:while语句后面的表达式为真时(非0),那么就将执行后面的语句块,但是while后面的表达式一旦为真,那么它就一直为真,自己并不会使条件转变为假,因此后面的语句块必须存在使表达式转变为假的条件,否则将进入死循环,无休无止。

换言之,就是程序在运行时可以通过判断,检验条件作出选择,程序还必须能够重复执行随后的语句,直到满足某个条件为止,跳出循环。

二、do{语句块}while(表达式):上面的while语句如果一开始表达式就为假,那么它大括号里的语句块一次也不执行,但是do……w hile(表达式)语句就算一开始表达式值为假,它也会执行一次。

流程图为:可以看出其特点是,先执行循环体语句,然后再进行判断,当表达式结果为真时那么返回重新执行循环体语句,直到循环条件为假时,结束此循环。

大大的注意:在使用do……while语句时,条件要放在while后面的圆括号中,但是最后一定一定要加上分号,如do……while(表达式);。

三、for语句:for语句的一般形式为:for(表达式1;表达式2;表达式3)。

其执行流程图为:for语句每一次循环时修改循环变量,跟上面的两个比,for循环语句最为灵活,它不仅可以用于循环次数确定的情况,也可以用于循环次数不确定的情况,而只给出循环结束条件的情况。

C语言课件:5_第六章 循环控制

C语言课件:5_第六章   循环控制
如:上例while语句中用花括号括起来的复合语句。
3. 循环控制变量:在循环条件中控制测试条件为 真或为假的变量。
如:上例while语句中使用的变量 i 。
注意:
⑴循环条件中的表达式一般是逻辑表达式或关系 表达式,也可以是算术表达式(非0为真,0为 假)。一般表达式中应含有循环控制变量。
while (3)
如果循环体可能一次也不执行时,用while语句。
(循环体至少执行一次) /*只有当用户键入q或Q,才结 束循环*/ char c; do { c=getchar();
printf(“%c”,c); }while(c!=‘q’&&c!=‘Q’);
(循环体可能一次不执行) /*只有不是q或Q的字符才被打 印*/ char c; c=getchar(); while (c!=‘q’&&c!=‘Q’); { printf(“%c”,c);
goto 语句为无条件转向语句,其作用为: 使程序的执行无条件地转移到指定处。
一般形式: goto 语句标号;
执行过程:执行语句时,程序转移到以标号 (定名规则与变量相同)为前缀的语句处继续 执行。
如:向前跳 goto label; …… …… label:语句;
向后跳 label:语句; …… …… goto label;
切记:不要从循环体外跳到循环体内!
二、用goto语句和 if 语句构成循环
例:计算10!并输出结果。
void main() { int i=1, sum=1; loop: if (i<=10)
{ sum=sum*i; i++; goto loop;
} printf(“10!=%d\n”,sum); }

计算机2级C语言题库第六章 循环控制

计算机2级C语言题库第六章 循环控制

第六章循环控制一单项选择题1.下面程序段的运行结果是()。

int n=0;while(n++<=2);printf(“%d”,n);A) 2 B) 3 C) 4 D) 有语法错2.设有程序段:t=0;while(printf(“*”)){t++;if(t<3) break;}下面描述正确的是()。

A) 其中循环控制表达式与0等价B) 其中循环控制表达式与'0'等价C) 其中循环控制表达式是不合法的D) 以上说法都不对3.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空()。

#include <stdio.h>main(){int a,b,t;scanf(“%d%d”,&a,&b);while( ___________ ){if(a>b){t=a;a=b;b=t;}printf(“%d,%d\n”,a,b);scanf("%d%d",&a,&b);}}A) !a=b B) a!=b C) a==b D) a=b5.对以下程序段描述正确的是()。

x=-1;do{x=x*x;}while(!x);A) 是死循环B) 循环执行二次C) 循环执行一次D) 有语法错误10.若i为整型变量,则以下循环执行次数是()。

for(i=2;i==0;) printf(“%d”,i--);A) 无限次B) 0次C) 1次D) 2次11.以下不是无限循环的语句为()。

A) for(y=0,x=1;x>++y;x=i++) i=x;B) for(;;x++=i);C) while(1){x++;}D) for(i=10;;i--) sum+=i;13.执行语句for(i=1;i++<4;) ;后变量i的值是()。

A) 3 B) 4 C) 5 D) 不定14.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。

c语言(7)

c语言(7)
第七讲 第六章 循环控制
内容:
§6.5 循环嵌套
§6.6 break和continue语句
§6.7 循环结构程序举例
§6.5 循环的嵌套
一、 循环的嵌套
在一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。
二、循环嵌套结构的执行
外循环每执行一次,内循环执行一个周期。
k=sqrt(m);
for (i=2;i<=k;i++)
if (m%i==0) {flag=1;break;}
if (flag==0) /* 按flag的值判断m是否为素数 */
{if (n%5==0) printf("\n"); /*每行输出5个数据*/
printf("%8d",m); /*输出格式字符使用%8d是为了输出格式清晰*/
#include "math.h" /* 要使用数学函数,必须包含math.h头文件 */
main ()
{int s=1; /* 变量s用来存放每项的系数 */
float pi=0,n=1; /* 变量pi用来存放总和,n用来存放项数 */
while (1/(2*n-1)>=1e-6) /* 循环结束条件是当项值的绝对值小于0.000001 */
printf("\n");/* 内循环的第三个语句输出回车换行符 */
}
}
§6.6 break语句和continue语句
一、 break 语句
1. 格式: break;
2. 功能: 提前结束循环,从循环体中无条件跳出来,转到循环语句后面的语句执行。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
循环结构的程序流程是:
在满足给定条件时,反复执行某个程序段。
C语言中可以用以下语句来实现循环:
⑴ 用goto语句和 if 语句构成循环; ⑵用while语句; ⑶用do_while语句; ⑷用for语句。
6.2 goto语句和goto语句构成的循环
一、 goto 语句(Goto Sentence)
//用while循环语句 void main() {
int i=1; long int sum=1; while (i<=10) {
sum=sum*i; i++; } printf(“10do-while循环语句 void main() {
{ y=y*x; count++;
} …
6.4 do-while循环语句
一般形式: do
语句 while(表达式);
执行过程:
分号不能少
⑴执行循环体中的语句;
⑵计算表达式,测试循环 条件,为真(非0)则重复 上面步骤,为假(0)结束循 环。
例:将上面计算10!并输出结果的程序用do-while语 句写出:
如:上例while语句中用花括号括起来的复合语句。
3. 循环控制变量:在循环条件中控制测试条件为 真或为假的变量。
如:上例while语句中使用的变量 i 。
注意:
⑴循环条件中的表达式一般是逻辑表达式或关系 表达式,也可以是算术表达式(非0为真,0为 假)。一般表达式中应含有循环控制变量。
while (3)
如: √ goto label_1; ╳ goto 123;
说明:
⑴ C语言允许在任何语句前加一个语句标号,作为 goto语句的目标。给语句加标号的形式:
语句标号:语句
⑵ goto语句是一种非结构化语句,结构化程序设 计方法不提倡使用goto语句,因为滥用goto语句 将使程序流程无规律,可读性差。但也不是绝对 禁止使用,只有在能够大大提高程序效率时才使 用。
goto 语句为无条件转向语句,其作用为: 使程序的执行无条件地转移到指定处。
一般形式: goto 语句标号;
执行过程:执行语句时,程序转移到以标号 (定名规则与变量相同)为前缀的语句处继续 执行。
如:向前跳 goto label; …… …… label:语句;
向后跳 label:语句; …… …… goto label;
{
int i=1;
long int sigma=1;
sigma=1*2*3*4*5*6*7*8*9*10;
while (i<=10)
{
sigma=sigma*i;
sigma
i++;
10!=3628800
}
printf(“10!=%ld\n”, sigma); 思考:如果不使用long int,还可
以使用什么变量类型定义sigma
例:计算y=x^n
void main() {
int count=1,n; float x,y=1.0; printf(“Enter the value of x and n : ”); scanf(“%f %d”,&x,&n); while(count<=n)//测试表达式 {
y=y*x; count++; } printf(“\nx = %f; n = %d; x to power n = %f\n”,x,n,y); }
第六章 循环控制 (Cycle Control)
• 了解goto语句和if 语句构成的循环。 • 熟练掌握for循环语句、while循环语句和
do-while 循 环 语 句 , 以 及 break 语 句 、 continue语句的使用。
• 熟练掌握循环结构程序设计的概念及其
程序编制技术。
void main()
一般形式: while (表达式) 语句
执行过程:
⑴ 先计算表达式的值 ; ⑵若表达式的值为真(非0)
时执行循环体中的语 句,然后重复上面步骤。 若表达式的值为假(0) , 则结束循环。
例:将上面计算10!并输出结果的程序用 while语句写出:
//用goto语句
void main() {
int i=1; long int sum=1; loop: if (i<=10)
while (0)
虽然从程序设计的角度上说是不合理的,但却是 合法的。
while (3) 语句 表示无限循环 while (0) 语句 表示不进入循环体
⑵要写出一个正确的循环结构,对控制变量要
做三方面工作:
①控制变量赋初值;
②把控制变量写入正确的循环条件(测试表达式);
③控制变量的更新、调整。 int count=1; … while(count<=n)//测试表达式
Enter the value of x and n : 2.5 4 x = 2.500000; n = 4; x to power n = 39.062500
循环结构的术语
1. 循环条件: 是循环结构中的测试表达式。
如:while(i<=10)
2. 循环体:是在每个循环周期均要执行一次的语 句。循环体可以是任何语句,简单语 句、复合语句、空语句均可以。
void main() { int i=1; long sum=1; loop: if (i<=10)
{ sum=sum*i; i++; goto loop;
} printf(“10!=%ld\n”,sum); }
运行结果:10!=24320 本应是:10!=3628800
6.3 while循环语句
切记:不要从循环体外跳到循环体内!
二、用goto语句和 if 语句构成循环
例:计算10!并输出结果。
void main() { int i=1, sum=1; loop: if (i<=10)
{ sum=sum*i; i++; goto loop;
} printf(“10!=%d\n”,sum); }
{ sum=sum*i; i++; goto loop;
} printf(“10!=%ld\n”,sum); }
//用while循环语句
void main() {
int i=1; long int sum=1; while (i<=10) {
sum=sum*i; i++; } printf(“10!=%ld\n”,sum); }
相关文档
最新文档