1、上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i10时,结束循环。注意: (1).for循环中语句可以为语句体,但要用和将参加循环的语句括起来。(2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。(3).for循环可以有多层嵌套。例如:for(;) 语句;i+=2) 语句;for(j=5;这些for循环语句都是正确的。main() i
2、nt i,j;printf(i jn);for(i=0;2;for(j=0;j3;j+)printf(%d %dn,i,j); 输出结果为:i j0 00 10 21 01 11 2用for循环求1+2+100的和:main()int sn=0,i;=100;sn+=i; /*1+2+100*/printf(%dn,sn);从程序可以看出,使用循环语句可以大大简化代码。(二)、while循环 它的一般形式为:while(条件)while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。#include stdio.h char c;c=0 /*初始化c*
3、/while(c!=n) /*回车结束循环*/c=getche(); /*带回显的从键盘接收字符*/上例中,while循环是以检查c是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c=,条件为假,循环便告结束。与for循环一样,while循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。(1).在while循环体内也允许空语句。while(c=getche()!);这个循环直到键入回车为止。(2).可以有多层循环嵌套。(3).语句可以是语句体, 此时必须用和括起来。用while循环求1+2+100的和:int sn=0,i=0;
4、while(+i=100) /*求1+2+100*/(三)、do-while循环 它的一般格式为:do语句块;while(条件);这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。同样当有许多语句参加循环时,要用和把它们括起来。用do-while循环求1+2+100的和:int sn=0,i=1;=100);从上面三个程序看出,使用for,while和do-while求解同样的问题,基本思路都差不多,只是在第一次计算时,注意初值。二、循环控制(一)、break语句brea
5、k语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。if(i=51) break; /*如果i等于51,则跳出循环*/ /*1+2+50*/可以看出,最终的结果是1+2+50。因为在i等于51的时候,就跳出循环
6、了。自己写写怎样在while和do-while循环中增加break语句。1. break语句对if-else的条件语句不起作用。2. 在多层循环中,一个break语句只向外跳一层。if(j=2) break;当i=0,j=2时,执行break语句,跳出到外层的循环,i变为1。(二)、continue语句continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用,用来加速循环。if(i=51) continue; /*如果i等于51,则结束本次循环*/ /*1+2+50+52+100
7、*/从程序中可以看出,continue语句只是当前的值没有执行,也就是说当前的值跳过去了,接着执行下次循环。if(j=1) continue;(三)、goto语句goto语句是一种无条件转移语句,与BASIC中的goto语句相似。goto语句的使用格式为:goto 标号;其中标号是Turbo C 2.0中一个有效的标识符,这个标识符加上一个:一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。标号既然是一个标识符,也就要满足标识符的命名规则。另外标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。通常goto语句与if条件语句连用,当满足某一条件时,程序
8、跳到标号处运行。goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用goto语句则比较合理。if(i=51) goto loop;loop: ;可以看出,这儿的goto语句和break作用很类似。这儿的loop:也可以写成loop: printf(%dn,sn); /*如果i等于51,则跳出本次循环*/可以看出这儿的loop语句和continue的作用类似。但是某些情况下又必须使用goto语句,否则会让程序大大臃肿。如:int i,j,k;printf(i j kn);for(k=0;k0;i-)if(num1%i=0&num2%i=0) break;printf
9、(最大公约数为%dn,i);2.求1!+2!+n!(n10)int n,i;long temp=1,sn=0; /*从9!以后,所得的值就超过了int范围*/scanf(%d,&n);=n;temp*=i;sn+=temp; /*如果没有这一步,求的就是n!*/printf(%ldn,sn);那么想想,如果求1!+3!+5!应该怎么办?3.判断一个整数是不是素数(素数就是只能被本身和1整除的数)。#include math.hint num,i,flag=0;num);for(i=2;iflag=0; /*标志变量复位*/if(num%i=0)flag=1;break;if(flag=0) printf(是素数n);else printf(不是素数n);可以说,在所有的C语言书上,都有判断素数的例题。它的编程思想是:把一个变量作为标志变量,用来标志是不是素数;循环体是从
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1