c语言for循环
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for( ) { ┆ while( ) {…} ┆ }
注: 但循环 嵌套不允许交 叉
20
例: 问程序输出的结果?
main() { int i=1,a=0; for(; i<=5; i++) { do { i++; a++; } while(i<3);
i++; } printf(“a=%d,i=%d\n”,a,i); }
for 循环语句的一般形式: for(表达式1 ; 表达式2 ; 表达式3) { 循环体 }
4
for(表达式1 ; 表达式2 ; 表达式3) { 循环体 }
设置循环 变量初值
求解表达式1
表达式2 判断表达式
假
真
内嵌语句
循环变 量增值
求介表达式3
for语句后下 一条语句
5
例: 求100之内各数之和: #include<stdio.h> int main( ) { int i , sum=0;
当然函数体也可改成:
if(n%3!=0) printf(“%d”, n ) ;
使用Continue仅是为了说明其的语法作用。
7
三、说明: 表达式缺省的for( )语句:
for( )语句中的三个表达式可以省略其中一个, 二个,甚至 三个。
但无论省略几个,其中的二个分号不能省。
如果在for语句之前,给循环变量已赋值,表达 式1可省去。分号不能省。如:
9
3. 甚至三个表达式都可省略: for( ; ; ) 语句 ;
例: void main()
{ int i=1, sum=0;
for( ; ; ) { sum+=i;
i++; if( i>10000) break ;
这种无限循环可用 break 语句来终止循环, 避免产生死循环.
}
}
10
补充: 逗号运算符(顺序运算符):
c语言
For 循环程序设计
1Leabharlann Baidu
5.1
1.FOR循环的引入 2.FOR循环语句的形式 3.表达式缺省的FOR循环语句 4.含有逗号运算符的FOR循环语句 5.关于FOR循环的几点补充说明 5.FOR循环语句的嵌套
一、FOR循环的引入
1、复习前两节课我们学习的循环语句—— while~do语句的基本格式和执行过程和特征。 main( ) {int x=1; (表达式1) s=0; while(x<=100) (表达式2) {s=s+x; x=x+1; (表达式3) } printf(“%d”,s); }
用两个或两个以上的变量 共同实现对循环的控制。
13
例 输入不多于10个实数,求这些数的和及其中 正数之和.(若不足10个数,以0 为结束标志)
#include<stdio.h> #include<math.h> int main( ) { float sum,psum,x; int i=1; ….
级别最低的一种。用它将二个表达式联起来,形成逗号 表达式。如:
求解过程是: 先求解表达式1,再求解表达 式2。整个逗号表达式的值用表 达式2的值代表。
表达式1,表达式2
例:
a = 3*5 , a*4
逗号表达式
先求解3*5,得a的值为15,然后求解第二表达式a*4, 得60。
11
一般形式还可扩展: 表达式1,表达式2 , …… ,表达式n 整个表达式的值用表达式n的值代表。
输出:
a=3 ,i=8
21
第 5 章 For 循环程序设计 结束
22
for(i=0; ( c=getchar( ) ) != „\n‟ ; i+=c) ;
不断输入字符,将ASCII码累加, 直到输入一个换行符.
16
(3). f or循环的条件检查总是在循环开始前进行的,如果
一开始条件为假(为零),则循环一次也不执行.
void main( ) 一开始条件就为假! { int x, y=10; for(x=10; x<10; --y) printf(“%d”,y); printf(“%d”, x); }
循环是可以嵌套的,循环嵌套是指一个循环体内又可包
含另一个完整的循环称为 循环嵌套。
里面的循环又可嵌套另一个循环,叫多层循环的嵌套。
19
已知的三种循环: while( ) , do - while( ) , for( )
如: while( ) { ┆ do {…} while( ); ┆ }
可以相互嵌套。
sum=0; i=1; for( ; i<=100 ; i++) sum=sum+i ; 表达式1可省去。
8
1. 表达式3也可省去: 表达式3可省去 如:for(i =1 ; i <=100 ; ) { sum=sum+i; 可把变量增值部 i++; 分放在循环体内 . } 2. 如果表达式2省略,C编译程序认为其值恒为真, 无限循环下去。如: for(i=1 ; ; i++) sum=sum+ i ; 表达式2可省去
}
ch5_5_4.c 15
五、对于for语句的进一步说明:
(1). 表达式1可以是设置变量初值的赋值表达式,也可是与 循环变量 无关的其它表达式. 如:
for(sum=0; i<100; i++) sum=sum+i;
(2). 表达式2一般是关系表达式或逻辑表达式,但也可以是 其它类型表达式,只要其值为非零,就执行循环体. 如:
17
(4). 当for语句的循环体是空语句时,则成为空循环体的for 语句,利用它可以实现某些特殊功能,比如产生时间延迟 等. 如下例:
for (t=0; t<value; t++)
;
空循环体
18
六、 循环嵌套:
for 语句一般用于具有明确循环次数的情况,如果 事先不知道准确的循环次数,只知道循环条件,一般用 while 或 do while 语句.
14
注 意 这 个 表 达 式
for(sum=psum=0.0, i=0 ; i<10 ; i++) { 若输入为0 ,结束. scanf("%f",&x); if(fabs(x)<1e-4) break; sum+=x; //求这些数的总和 if(x<0) continue; 输入小于0 不累加. psum+=x; //其中正数之和 } printf("sum=%f\n",sum); printf("psum=%f\n",psum); return 0;
注:
a. 在很多情况下,使用逗号表达式的目的只是想得
到(计算)各个表达式的值,并非一定要得到或使用整个 表达式的值。
b. 并不是任何出现逗号的地方都是逗号运算符. 如:
printf(“%d,%d,%d”, a,b,c);
其中的这些 逗号就不是。
12
四.含逗号运算符的for语句 for语句中 ,表达式1、表达式3可以使用逗号运算符: 如: for( i=1, j=20 ; i <j ; i++ , j--)
i=1
i<=100?
假
for( i=1;i<=100; i++) { sum+=i ; }
printf(“1+2+…100=%d”,sum);
真
sum+=i
i++
return 0; }
单条语句时, 大括号可以不要.
ch5_5_1.c
for语句后下 一条语句
6
例:把100~200之间的不能被3整除的数输出。 main( ) { int n; for(n=100; n<=200; n++) { if(n%3 ==0) continue ; /*能被3整除的数,不打印*/ printf(“%5d” , n); } }
分析用while语句来完成 的程序,主要完成1到 100的累加和,对一个 循环程序来说最关键的 三个部分:循环变量的 赋初值、控制循环条件、 循环控制变量的更新。
二 for循环语句形式:
C语言中的for循环语句比较复杂些 ,也比较灵活,功能较
强. 虽然主要用于定数循环 ,但也可以用于不定数循环 ,它完 全可以替代while循环.