C程序设计
----教学过程篇
For循环
For循环是 C语言中使用最为灵活的,可用于循环次数已经确定的循环,也可以用于循环次数没有确定的循环格式为:
for (表达式 1;表达式 2;表达式 3) {语句 }
可理解为:
for(循环变量赋初值;循环条件;循环增量语句 ) {语句 }
例如,for(I=0;i<10;I++) {count++;}
For循环
For循环执行过程:
1.求表达式 1。
2.求表达式 2,如果其值为真,则执行 for
循环的循环体语句,然后执行第 3步,
如果为假,则结束循环,并执行第 5步
3.求表达式 3
4.执行第 2步
5.循环结束,执行 for语句后面的语句
For循环
情况说明
1.for 循环的表达式 1可以省略,此时在
for语句前给循环变量赋初始值,但其后的分号不可省略例如,for(;k<10;k++){}
2.表达式 2不可以省略,否则循环无法结束
3.表达式 3可以省略,但要通过其它方法确保循环结束
For循环
4.可以省略表达式 1和 3,只保留表达式 2
例如,for (;I<10;) {sum=sum*I;I++;}
等价于,while(I<10){sum=sum*I;I++;}
5.表达式 1,2,3都可以省略,分号不可省例如,for(;;){} 等价于,while(1){}
6.表达式 1可以是与循环控制变量无关的变量赋值,另外,表达式 1和 3均可为逗号表达式
For循环
7.表达式 2可以是关系表达式,也可以是逻辑表达式
8.若 for循环体内没有语句,可直接用分号结束。
例如,for(;;){} 等价于,for(;;);
考虑以下语句的效果,
for(i=65;(c=getchar())!=10;i++)
{printf("%c",i);}
For循环 (程序一 )
P120 T6.8
#include <stdlib.h>
#include <stdio.h>
main()
{
long i;
double m,n,sum,temp;
for(i=1,m=2,n=1,sum=0;i<=10;i++)
For循环(程序 一 )
{
sum=sum+m/n;
temp=m+n;
n=m;
m=temp;
}
printf("the result is,%lf\n",sum);
system("pause");
}
循环嵌套
一个循环体内又包含另一个完整的循环结构,成为循环嵌套,内嵌的循环中还可以再嵌入循环体,称为多重循环,三种循环( while,do while,for循环)可以互相嵌套有以下形式:
1.while(){while(){}}
2.do{do {} while()} while()
3.for(;;){for(;;){}}
循环嵌套
4.while (){do {} while() }
5.for(;;){while(){}}
6.do {for(;;){}}while ()
循环嵌套 (程序一 )
P120 T6.4
#include <stdlib.h>
#include <stdio.h>
main()
{
long i,j,temp1,temp2=0;
for (i=1;i<=20;i++)
{
for(temp1=1,j=1;j<=i;j++)
{
循环嵌套 (程序一 )
temp1=temp1*j;
}
temp2=temp2+temp1;
}
printf("the result is,%ld\n",temp2);
system("pause");
}
循环嵌套 (程序二 )
#include <stdio.h>
#include <stdlib.h>
#define n 7
main()
{
int i,j;
for (i=1;i<=(n+1)/2;i++)
{
for(j=i;j<=(((n+1)/2)-1);j++)
{printf(" ");}
for(j=1;j<=2*i-1;j++)
{printf("*");}
循环嵌套 (程序二 )
printf("\n");
}
for (i=1;i<=(n-1)/2;i++)
{
for(j=1;j<=i;j++)
{printf(" ");}
for(j=1;j<=((n-1)/2-i)*2+1;j++)
{printf("*");}
printf("\n");
}
system("pause"); }