C语言for循环结构
| 分类: 教育教学 |
or语句是循环结构中使用最广泛的循环控制语句,特别适合已知循环次数的情况。
语句格式: for (表达式1;表达式2;表达式3)
其中:
表达式1(通常为赋值表达式)用于对循环控制变量初始化赋值,又叫初值表达式;
表达式2(通常为关系表达式或逻辑关系表达式)作为循环进行的条件,满足条件时循环正常进行;
表达式3(通常为++/--表达式)描述循环控制变量的变化,实现对循环控制变量的修改;
语句序列(循环体)可以是简单语句、复合语句。
执行过程如图1所示。
首先,计算表达式1的值,作为循环控制变量初值。
每一次执行循环体结束时,都要重新计算表达式3的值,然后重新判断表达式2是否成立,根据判断结果决定是否继续执行循环体。
for语句很好的体现了正确表达循环结构的三个要素:循环控制变量的初始化、循环控制的条件、循环控制变量的更新。
for语句还需要注意以下几点:
(1)一般情况下,循环控制变量仅用来控制循环过程,尽量不在循环体中做它用,以免导致另人费解的错误。
(2)表达式3可以自增/自减,或是加/减一个整数等多种形式。例如:
(3)for语句while语句的相似性。都是先判断条件后执行循环体语句。多数情况下,while循环可以用等价的for循环结构表示。
将for(表达式1;表达式2;表达式3)语句转换为等价的while格式:
#include
#define N 5
{
int i =1 ,sum=0 ,a ;
while( i<=N)
printf ("sum=%d\n",sum) ;
#include
{
int i =1 ,sum=0 ,a ;
while( a!=-1)
printf ("sum=%d\n",sum) ;
循环用for语句
#include
#define N 5
{
int i =1 ,sum=0 ,a ;
for(i=1, i<=N,i++)
printf ("sum=%d\n",sum) ;
#include
{
int i =1 ,sum=0 ,a ;
for( i=1,a!=-1,i++)
printf ("sum=%d\n",sum) ;
分析功能 实现功能
开平方 搜索开平方的函数sqrt
1、返回值 参数
2、查头文件math.h
for循环
#include "stdio.h"
#include "stolib.h"
{
for ( a =1 ,b = 5 ; a <= 5 ; a++ )
//
初始值 条件 变化
写多条赋值语句,用逗号隔开
printf(" %d ,%d
\n " ,
a , b );
b --
system (pause) ;
return 0 ;
}
for循环执行的顺序
语句1(初始值)—— 语句2(条件)——代码块——语句3(变量)——语句2(条件)——代码块——语句3(变量)
语句1 只执行一次
for循环比while循环
更加合理紧凑。使用这2种之一都是可以的。就看你更熟悉哪一个循环了。
在2015版本之前的,条件语句不能定义变量
注意分号 花括号 不要写成逗号。
for循环的灵活性
语句1
1、通常是循环变量的初始值
2、可以写多条赋值语句,用逗号隔开
3、可以什么都不写,但是分号不能丢。
4、可以写其它表达式,甚至写函数调用都行。只要是合法的语句都能写。
语句2
1、必须写条件
2、可以什么都不写,默认为1,表示真,死循环。
3、甚至可以加函数
语句3
1、写循环变量控制的变化。
2、可以写多个变化,逗号隔开。
3、可以什么都不写,变化放在代码块内
for ( ; ; )
{
}
for 循环可以当while循环来使用
while ( 1 )
{
}
输出带符号的整数,需要占用5个字符位置, 不够则空格补齐. ]是右对齐,%-5d是左对齐.
for 循环的嵌套
#include "stdio.h"
#include "stolib.h"
{
for ( a =1 ; a <= 3
; a++ )
system (pause) ;
return 0 ;
}
说明程序执行的过程:2*3=6次
a =1 时 ,1 <= 3 成立,
1、则当 b
=1时,1 < 3成立,ncount++,输出 1次,输出1,总1次
2、则当 b
=2时,2 < 3成立,ncount++,输出 1次,输出2,总2次
3、则当 b
=3时,3 < 3不成立,跳出。
a =2 时 ,2 <= 3 成立,
1、则当 b
=1时,1 < 3成立,ncount++,输出 1次,输出1,总3次
2、则当 b
=2时,2 < 3成立,ncount++,输出 1次,输出2,总4次
3、则当 b
=3时,3 < 3不成立,跳出。
a =3 时 ,3 <= 3 成立,
1、则当 b
=1时,1 < 3成立,ncount++,输出 1次,输出1,总5次
2、则当 b
=2时,2 < 3成立,ncount++,输出 1次,输出2,总6次
3、则当 b
=3时,3 < 3不成立,跳出。
a =4 时 ,4<= 3
不成立,跳出。
for 循环 比 while循环
结构更清晰
#include "stdio.h"
#include "stolib.h"
{
while ( a <= 3 )
system (pause) ;
return 0 ;
}
当只有一个外部变量时的嵌套
#include "stdio.h"
#include "stolib.h"
{
for ( a =1 ; a <= 3
; a++ )
system (pause) ;
return 0 ;
}
请注意:两层循环用一个变量可能会出问题,两层交集要少一些,否则逻辑会很难理解。
说明程序执行的过程:2次
a =1 时 ,1 <= 3 成立,
1、则当 a
=1时,1 < 3成立,ncount++,输出 1次,输出1,总1次
2、则当 a
=2时,2 < 3成立,ncount++,输出 1次,输出2,总2次
3、则当 a
=3时,3 < 3不成立,跳出内部循环。进入外部,a++则为4,当
a =4时,4 <
3不成立
阶乘计算
1!+2!+3!+4!+……+m!
分析:
t=t*n ; n=1,2,3,4,……
s=s++ ;
常用算法
(1)累乘计算(t=1 或第1项)
(1)累加计算(sum=0 或第1项)
#include
{
int n,m ;
long sum=0,t=1
scanf("%d" &m);
for( n=1,n<=m,n++)
printf ("sum=%ld\n",sum) ;
前一篇:C语言while循环结构
后一篇:C语言dowhile循环结构

加载中…