重要的流程控制 循环 for的那些事

目录

1. 循环的定义和分类

2. for循环为什么使用for循环

3. for循环的最简单的用法

4. for和if的嵌套使用 

5. for和if嵌套使用的例子

  5.1 求1到100之间奇数的和

 5.2 求1到100之间奇数的个数

 5.3 求1到100之间奇数的平均值

5.4 求1到100之间奇数之和,在求1到100之间偶数之和


1. 循环的定义和分类

    简单点说,循环的定义就是某些代码会被重复执行。这就是循环,有些代码会被执行很多次,不停循环。

   循环分为 for   while   do.....while

其中for的使用最多,而且逻辑上最清晰的是for,最难的也是for。


2. for循环为什么使用for循环

先举一个例子

#include<stdio.h>
int main(void)
{
	int i;
	int sum = 0;
	for (i = 1; i <= 100; ++i)
	
		sum = sum + i;

	printf("sum = %d\n", sum);

	return 0;
}
//输出结果是5050

    那这个循环是如何实现的呢,我们先把i = 1设为第一步 i <=100 设为第二步 ++i设为第三步 

sum = sum + i 设为第四步 printf("sum  = %d\n ", sum) 设为第五步

   其中for控制一个语句,printf不属于for语句。

   先执行1,然后在执行2,2如果成立,将进行循环,进行4,最后进行3,然后进行2,

如果成立,在43。直到2不成立。最后5输出。         


3. for循环的最简单的用法

  求一道十之间所有奇数的和

#include<stdio.h>
int main(void)
{
	int i;
	int sum = 0;

	for (i = 1; i < 10; i += 2) //i+=2; 等价于i= i+2
	{
		printf("wryyyyyy\n");
		sum = sum + i;
	}

	printf("i = %d sum =%d\n", i ,sum);

	return 0;
}
/*wryyyyyy
  wryyyyyy
  wryyyyyy
  wryyyyyy
  wryyyyyy
i= 11 sum = 25 */

    这里我们需要知道的是,这里for循环执行了几次。

    i ——>1 3 5 7 9  当i=11时不循环,那我们如和验证呢,printf("wryyyyyy\n")循环了几行,就循环了几次。

    i直到11时停止循环,所以输出i的值为11。

    sum = 0+1 

    sum = 1+3

    sum = 4+5

    sum = 9+7

    sum = 16 +9 

   最终 sum = 1+3+5+7+9=25,为十以内奇数的和。 


4. for和if的嵌套使用 

#include<stdio.h>
int main(void)
{
	int i;
	int sum = 0;
	
	for (i = 3; i <= 10; ++i)
	{
		if (i % 3 == 0)//如果i能被2整除
			sum = sum + i;
			printf("sum = %d\n", sum);		
	}
	
	return 0;
}

   我们先看看这个流程 i=1 为第1步i<=10为第2步,++i为第三步,i%3为第四步,sum =sum +i为第五步,printf为第六步。

   首先,限制性1.然后执行2,2成立,在执行4,如果4不成立执行6,4成立执行5,5执行完执行6,然后是3,在判断2,2不成立结束程序。

输出结果  sum = 3
                sum = 3
                sum = 3
                sum = 9
                sum = 9
                sum = 9
                sum = 18
                sum = 18

i>3 4 5 6 7 8 9 10 11 

3    3 3 9 9 9 18 18 


5. for和if嵌套使用的例子

  5.1 求1到100之间奇数的和

#include<stdio.h>
int main(void)
{
	int i;
	int sum = 0;
	for (i = 0; i < 101; ++i)
	{
		if (i % 2 == 1)
			sum += i; //sum = sum + i
	}

	printf("sum = %d\n", sum);

	return 0;
}//i = 2500

 5.2 求1到100之间奇数的个数

#include<stdio.h>
int main(void)
{
	int i;
	int cut = 0; //一般cut表示个数
	for (i = 0; i < 101; ++i)
	{
		if (i % 2 == 1)
		++cut ; 
	}

	printf("cut = %d\n", cut);

	return 0;
}//cut= 50

 5.3 求1到100之间奇数的平均值

#include<stdio.h>
int main(void)
{
	int i;
	int cut = 0; //一般cut表示个数
	int sum = 0;
	float avg;  //average的缩写

	for (i = 1; i < 101; ++i)
	{
		if (i % 2 == 1)
		{
			sum += i;
			++cut;
		}
	}
	avg = 1.0 * sum / cut;  //1.0默认是double

	printf("sum = %d\n", sum);
	printf("cut = %d\n", cut);
	printf("avg = %f ", avg);

	return 0;
} /* sum = 2500
cut = 50
avg = 50.000000*/

5.4 求1到100之间奇数之和,在求1到100之间偶数之和

#include<stdio.h>
int main(void)
{
	int i;
	int sum1 = 0;
	int sum2 = 0;

	for (i = 1; i < 101; ++i)
	{
		if (i % 2 == 1)
		{
			sum1 += i;
			
		}
		else
		{
			sum2 += i;

		}
	}

	printf("sum1 = %d\n", sum1);
	printf("sum2 = %d\n", sum2);

	return 0;
} /* sum1 = 2500
     sum2 = 2550*/

感谢观看

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值