循环体的集中构造方式有:
1. goto 语句构造循环体:
void main()
{
int i=1,sum=0;
loop:sum=sum+i;
i++;
if(i<=100)
goto loop; // goto的循环语句;
printf("一到一百的和为:%d\n",sum);
}
2. while语句:统计键盘中的字符个数:
int main()
{
char str[50];
char *p;
int n;
while(1)
{
n = 0;
scanf("%s",str);
p = &str[0];
while( *p != '\0' )
{
p++;
n++;
}
printf("%d\n",n);
}
return 0;
}
3. do-while语句:求满足1+2+3+……< 100的 i:
void main()
{
int i=0,sum=0;
do // 先执行一次循环体在进行判断,一定会执行一次循环体;
{
i++;
sum=sum+i;
}
while(sum<100);
printf("整数为:%d\n",i);
}
4. do-while 与 while 的区别:任意输入一整数颠倒顺序输出!
void main()
{
int n,d;
printf("请输入一个非负整数:\n");
scanf("%d",&n);
while (n!=0) // 当n=0时,该程序无输出;而do-while 有输出
// ∴至少执行一遍循环体的用do-while
{
d=n%10;
printf("%d\n",d);
n=n/10;
}
}
void main()
{
int n,d;
printf("请输入一个非负整数:\n");
scanf("%d",&n);
do
{
d=n%10;
printf("%d",d);
n=n/10;
}while(n!=0);
}
5. for语句:
void main()
{
char c;
for(c=32; c<=126; c++) // 32~126 为可显示字符
printf("%c %d\n",c,c);
}
for(exp1 ;exp2 ;exp3 )
exp1: 赋初值
exp2: 循环条件
exp3: 修改控制变量的表达式;
先判断表达式二,后执行循环体;再计算表达式3
6. break 和 continue 语句:
break 跳出循环执行后面的语句。 但在switch中,只跳出该语句,并不终止循环;
continue 结束本次循环,不终止循环,而继续进行判断;
break:面积小于100的圆;
void main()
{
int r;
float PI=3.1415926,area;
for(r=1; r<=10; r++)
{
area=PI*r*r;
if(area>100) break;
printf("r=%d\t\t面积为:%f\n",r,area);
}
}
continue:100以内能被7整除的数
void main()
{
int n;
for(n=7; n<=100; n++)
{
if(n%7!=0) continue;
printf("%d\n",n);
}
}
7. 循环的嵌套:
1.循环嵌套不能交叉,在一个循环体内必须完整包含另一个循环
2.内循环控制变量不能重名
void main()
{
int i,j;
for(i=0; i<3; i++)
{
printf("i=%d:\t",i);
for(j=0; j<4; j++)
printf("j=%3d\t",j);
printf("\n");
}
}
8. 循环设计举例:fibonacci数列: Fn=(Fn-1)+(Fn-2)
void main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1; i<=20; i++)
{
printf("%12ld\t%12ld",f1,f2);
if(i%2==0) printf("\n"); // 控制每行输出四个 !!!!!
f1=f1+f2;
f2=f1+f2;
}
}