C语言程序设计-[10] for语句循环结构

1、for语句循环结构定义

for语句循环结构的一般形式、流程图和执行过程如下:

注1:计算表达式2是循环的判定表达式。与前面一样,这个表达式可以是任意的,只要有值就行,遵循非0即真的原则。

注2:一个循环结构由四个要素构成:循环初始条件、循环判定条件、循环体和循环修正条件。循环初始条件就是循环结构的一些变量定义和初始化值设置,如上图计算表达式1。循环判定条件就是上图中的计算表达式2,即循环的判定表达式。循环体就是循环执行部分,如上图中的语句。循环修正条件就是为了进入下一轮循环,需要改变循环条件,如上图中的计算表达式3。

注3:for语句循环结构将表达式1、表达式2和表达式3全放在一块。但是,首轮循环执行顺序是表达式1、表达式2、循环体语句和表达式3,下轮循环执行顺序是表达式2、循环体语句和表达式3。

注4:表达式1、表达式2和表达式3都可以省略,但是两个;号不能省略。表达式1省略时,就需要将表达式1提到for语句的前面。表达式2省略时,就需要将表达式2以if语句的形式放在循环体中。表达式3省略时,就需要将表达式3放到循环体后面。

2、for语句循环结构示例

还是上面那个题目:求1+2+3+...+100的值。

根据上述定义和注解,我们对于这个问题,首先分析其个要素如下:

循环初始化条件:i=1, sum=0;  //从上面问题来看,主要有要加的数(第一个为1,即i=1)和加的结果(在加之前结果为0,即sum=0)。

循环判断条件:i<=100;  //从上面问题来看,要加的数是从1~100的,也就是小于等于100的数就要加起来,即i<=100。

循环体: sum+=i;  // 从上面问题来看,对于每一个从1开始且小于等于100的数都要加起来,即每个i都要加进sum中,即sum+=i。

循环修正条件: i++;   //从上面问题来看,每一个加进sum的数是变化的,所以i要+1,即i++。

有了这个四素,接下来就是套用for语句循环结构的一般形式就行,具体代码如下:

#include "stdio.h"

int main()
{
	int i, sum=0; // 变量定义、其他初始化值 
	for(i=1;i<=100;i++)     //循环初始条件、循环判定条件和循环修正条件  
	{
		sum+=i;     //循环体 
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

https://i-blog.csdnimg.cn/direct/d22822d5998e4e21a873908cc2bd6589.png

注1:省略表达式1和表达式3时,代码如下:

#include "stdio.h"

int main()
{
	int i=1, sum=0; // 变量定义、循环初始条件 
	for(;i<=100;)     //循环判定条件
	{
		sum+=i;     //循环体
		i++;        //循环修正条件
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

https://i-blog.csdnimg.cn/direct/d22822d5998e4e21a873908cc2bd6589.png

这与while语句的结构形式对应。

注2:省略表达式2时,就需要使用if....break形式,后面学for语句的break时再讲。

3、与while语句循环结构可以相互转换

(1)while语句循环结构——变for语句循环结构

如下为while语句循环结构代码:

#include "stdio.h"

int main()
{
	int i=1, sum=0; //循环初始条件 
	while(i<=100)     //循环判定条件
	{
		sum+=i;     //循环体 
		i++;        //循环修正条件 
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

转换为for语句循环结构只需要两步:

第一步,将while(i<=100)改为for(;i<=100;)。

第二步:将i=1和i++移至for(;i<=100;)中,改为for(i=1;i<=100;i++)。

得到代码如下:

#include "stdio.h"

int main()
{
	int i, sum=0; // 变量定义、其他初始化值 
	for(i=1;i<=100;i++)     //循环初始条件、循环判定条件和循环修正条件  
	{
		sum+=i;     //循环体 
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

https://i-blog.csdnimg.cn/direct/d22822d5998e4e21a873908cc2bd6589.png

(2)  for语句循环结构——变while语句循环结构

#include "stdio.h"

int main()
{
	int i, sum=0; // 变量定义、其他初始化值 
	for(i=1;i<=100;i++)     //循环初始条件、循环判定条件和循环修正条件  
	{
		sum+=i;     //循环体 
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

https://i-blog.csdnimg.cn/direct/d22822d5998e4e21a873908cc2bd6589.png

转换为while语句循环结构只需要两步:

第一步,将i=1移到for语句前面,而将i++移到for语句循环体后面。

第二步:将for(;i<=100;)改为while(i<=100)。

得到代码如下:

#include "stdio.h"

int main()
{
	int i=1, sum=0; //循环初始条件 
	while(i<=100)     //循环判定条件
	{
		sum+=i;     //循环体 
		i++;        //循环修正条件 
	}    
	printf("1+2+3+...+100=%d",sum);
	return 0;
}

https://i-blog.csdnimg.cn/direct/d22822d5998e4e21a873908cc2bd6589.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值