当前位置:文档之家› c语言_循环结构

c语言_循环结构

循环体语句;
循环体语句可以是一条, 也可以是多条, 多条的时候应用复合语句 {}将多条语句括起来。
语句
假(0) 条件
循环变量的调整 语句
真(非0)
循环体语句
避免死循环
例:求S=1+2+3+……+10的值
源程序: #include<stdio.h> void main( ) { int i , s=0 ;
例 从a显示到j。
解1:#include<stdio.h> main( ) { int i=0; for(i=0;i<10;i++) putchar(‘a’+i); }
解2:#include<stdio.h> main( ) { int i=0; for(;i<10;i++) putchar(‘a’+i); }
i=1; while(i<=100) { sum=sum+i;
i++; } printf("%d",sum); }
循环条件
循环终值 循环体
While(i<=100) {
i++; sum=sum+i; }
例:求S=1+2+3+……+n 的值
源程序: #include<stdio.h> void main( ) { int i , s ,n;
int main(void)
{
long num;
long sum = 0l;
int status;
printf("Please enter an integer to be summed. ");
printf("Enter q to quit.\n");
status = scanf("%ld",&num);
return 0 ;
}
分析:
这个例子改变了while的判断条件,用 status=1代替了status==1。前一个表达式是一个赋 值表达式,它把status赋值为1。而且表达式的值 就是其左侧的值,这样status=1的值也为1。因此 ,实际上这个while循环就等于使用了while(1), 即无限循环。
NN
条件
条件
Y
Y
命令序列2… 命令命序令列序列1…
不重复执行; 但有语句不执行。
命令序列……
If语句后面的下一 条语句
If语句后面的下一条 语句
第6章 循环结构程序设计
主要内容
循环的概念、循环变量的概念等(重点) while语句 do while语句 for 语句:每一种语句的格式和使用都是重点 循环的嵌套(难点)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
printf("%d,%d,%d\n",i,j,k);
}
循环嵌套的说明
嵌套的循环控制变量不能相同 内循环变化快,外循环变化慢
如:for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf("%1d*%1d=%2d ",i,j,i*j); printf("\n"); }
printf("Please input a number:"); scanf("%d",&n); i=1; while ( i<=n ) { s=s+i; i=i+1;} printf(“please outp;
n
N i<=10
Y
s=s+i; i=i+1;
输出s的值
• 6.4 for语句
– 一般形式
for([expr1] ;[ expr2] ;[ expr3]) 循环体语句;
– 执行流程
for
expr1 假(0)
expr2 真(非0)
循环体
expr3
– for语句的一般应用形式
for(循环变量赋初值;循环条件;循环变量增值) {
循环体语句; }
例 用for循环求
i=i+1;} printf(“sum=%d\n”,sum); }
源程序: #include<stdio.h> void main( ) { int sum=0,i;
scanf(“%d”,&i); do { sum=sum+i;
i=i+1;} while ( i<=100 ) printf(“sum=%d\n”,sum); }
int main(void) {
int n=0; while(n++<3);
printf("n is %d\n",n); printf("That's all this program does.\n"); return 0; }
循环在判断条件后的第一个简单或复合语句处就结 束了。
练习3:观察以下程序运行结果并分析。
(3) while() { …… do { ……} while( ); ……. }
(4) for( ; ;) { …… do { …… }while(); …… while() { …… } …...
}
外循环 内循环 内循环
main()
{ int i,j,k;
运行结果:
for(i=0;i<2;i++)
}
}
例: 求 n!,即计算 1 n
main() {
int i,s,n; s=1; printf("Enter n:"); scanf("%d",&n); for(i=1;i<=n;i++) { s=s*i;} printf("s=%d\n",s); }
练习1:观察以下程序运行结果并分析。
main() {
运行结果:abcdefghij
解3:#include<stdio.h解> 4:#include<stdio.h>
main( )
main( )
{ int i=0;
{ int i=0;
for(;i<10;)
for(;i<10;putchar(‘a’+i),i++)
putchar(‘a’+(i++)); ;
总是先执行一次循环体, 然后再求表达式的值,因 此,无论表达式的值是0还 是非0,循环体至少执行一 次。
例:while和do while循环比较
源程序: #include<stdio.h> void main( ) { int sum=0,i;
scanf(“%d”,&i); while ( i<=100 ) { sum=sum+i;
C的基本结构程序设计
复习提问: 程序的基本结构:
顺序结构 选择结构 循环结构
C的基本结构程序设计
复习提问:
START
顺序结构的特点: 每一条语句按顺序执行;
每一条语句只执行一遍, 不重复执行; 也没有语句不执行。
命令序列1 命令序列2 命令序列……
END
C的基本结构程序设计
复习提问:
分支结构的特点: 每一条执行了的语句 都只执行一遍。
i=1; while ( i<=10 ) { s=s+i; i=i+1;} printf(“please output s=%d\n”,s); }
i=1; N
i<=10 Y
s=s+i; i=i+1;
输出s的值
– 实例,用while循环语句实现求
循环 初值
循环变 量增值
#include <stdio.h> main() { int i,sum=0;
N
条件
Y 命令序列
……
命令序列
break
命令序列
循环后面下一条语句
– goto语句的用途:
• 与if语句一起构成循环结构; • 从循环体中跳到循环体外。
goto语句不 符合结构化 编程的原则, 一般不提倡
采用。
• 6.2 while语句构成的循环结构
❖一般形式:
❖执行流程:
循环变量的初始值; while(循环条件表达式)
正确确定循环体 循环控制变量和求解的问题挂钩
例:试找出满足下列条件的所有三位数
(1)其百位数不大于2
(2)将个位与百位对换,得m到a的in(三) 位数是原三位数的两倍多
分析:
m{ ainint (i,)j,k,m,n,s=0;
则nm用变十百十个n若是==三量位位位位m11满0>0重分数数数数0=足0百 家 鸡 百*ijk循别和2*i取取+条k取*钱张翁钱n+1环表个值值件值10买丘一买的示位0*10的j2*百建值百+~~循百数j~+k29三9鸡在钱鸡i环位位问《五,控数数题,问算制、:鸡鸡经公母翁》{} 元一、一ffioonff五值鸡书oorrtff((oorriii,{}{世钱母中((==jrr}jj,miminn((==11kffkk纪三、提(({==00;;,mm====iim<<11;;i11s末,鸡出22jjf>><<==00,(+00;;ns====00jj22,鸡雏了+00<<;%22**;99;**;==iiii++**;;我雏各“++kk199jjnn++++++11p0;;))国三几百++kk))1100r=pi++))00**n=古值何鸡rjj++**+t+i0fnjj))++(kk)代钱?问t"p;;iif%;;(r数一题"i%ndt学。”fd("",:n\"n),n";));;} }
相关主题