#4:C语言复习:循环结构;

循环体的集中构造方式有:

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;
	}
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值