计算机二级C语言辅导 第五章循环结构
计算机二级C语言 第五章 循环结构程序设计
- 49 -第五章 循环结构程序设计【本章要求】1、掌握for 循环结构的定义及使用2、掌握while 和do-while 的定义及其使用。
3、掌握continue 语句和break 语句的定义及其使用。
4、掌握循环的嵌套。
5.1 while 语 句while 语句用来实现“当型”循环结构。
其一般形式如下:while (表达式)语句其中表达式是循环条件,语句为循环体。
while 语句的执行过程是:计算表达式的值,当值为真(非0)时, 执行循环体语句。
其执行过程如图表示。
【例5.1】用while 语句求1~100的累计和。
#include "stdio.h"main( ){int i=1,sum=0; /*初始化循环控制变量i 和累计器sum*/while( i<=100 ){ sum+= i; /*实现累加*/++i; /*循环控制变量i 增1*/}printf("sum=%d\n ",sum);}【运行结果】sum=5050【例5.2】统计从键盘输入一行字符的个数。
#include <stdio.h>main( ){int n=0;printf("input a string:\n");while(getchar( )!='\n ') n++;《C语言程序设计》- 50 -printf("%d",n); }【例5.3】用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝对值小于10-6为止。
#include "stdio.h"#include <math.h>main ( ){int a;float n,t,pi;t=1;pi=0;n=1.0;s=1;while ( fabs(t)>1e-6){ pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf("pi=%10.6f\n",pi);}【例 5.4】译密码。
计算机二级C语言考点:循环结构
计算机二级C语言考点:循环结构循环结构是结构化程序设计的三种基本结构之一,在程序设计中对于那些需要重复执行的操作应该采用循环结构来完成,利用循环结构处理各类重复操作既简单又方便。
在C语言中有三种可以构成循环结构的循环语句:while、do-while和for。
while语句和用while语句构成的循环结构1.1 while循环的一般形式由while语句构成的循环也称“当”型循环,while循环的一般形式如下:while(表达式)循环体例如:k=0while(k<10){ printf(“*”);k++;}程序段将重复输出语句printf,输出10个*号。
说明:(1)while是C语言的关键字。
(2)while后一对圆括号中的表达式可以是C语言中任意合法的表达式,但不能为空,由它来控制循环体是否执行。
(3)在语法上,循环体只能是一条可执行语句,若循环体内有多个语句,应该使用复合语句。
1.2 while循环的执行过程while循环的执行过程如下:(1)计算while后圆括号中表达式的值。
当值为非0时,执行步骤(2);当值为0时,执行步骤(4)。
(2)执行循环体一次。
(3)转去执行步骤(1)。
(4)退出while循环。
由以上执行过程可知,while后圆括号中表达式的值决定了循环体是否将被执行。
因此,进入while循环后,一定要有能使此表达式的值变为0的操作,否则循环将会无限制地进行下去,成为无限循环(死循环)。
若此表达式的值不变,则循环体内应有在某种条件下强行终止循环的语句(如break等)。
请初学者注意:(1)while语句的循环体可能一次都不执行,因为while后圆括号中的条件表达式可能一开始就为0。
(2)在设计循环时,通常应在循环体内改变条件表达式中有关变量的值,使条件表达式的值最终变成0,以便能结束循环。
(3)当循环体需要无条件循环,条件表达式可以设为1(恒真),但是循环体内要带条件的非正常出口(break等)。
第5章C语言程序设计的循环结构
5.8 循环结构程序设计实例
【例5-15】计算1-1/2+1/3+…-1/n-1+1/n的结果。 【例5-16】求1+2+3+…+n<m中最大的n值,并求和。 【例5-17】是一个按照规律翻译密码的例子。程序描述:翻译密
码的规律是将每一个字母变成它后面的字母,如将A变成B,Z变成 A,非字母字符不变,‘!’作为电文结束标志。例如,有一电文 “right”,翻译成“sjhiu”。 【例5-18】 花100块钱买100斤蔬菜。程序描述:西红柿每斤5元, 黄瓜每斤3元,白菜3斤一元,问100块钱买100斤蔬菜有几种解法。
(2)用while和do-while循环时,循环变量初始化的操作应在while和 do-while语句之前完成。而for语句可以在< expression-1>中实现循环 变量的初始化。
(3)for、while属“当型”循环,先判断,后执行循环体。因此当条件 一开始就不成立时,循环体就一次也不执行。这两种循环可以互相取代。 而do–while循环属“直到型”循环,先执行循环体,后判断。因此无论 条件是否成立,循环体至少要执行一次。
5.2.1 while循环的基本语法 5.2.2 while循环的使用实例
3
5.2.1 while循环的基本语法
while循环语句用来实现“当型”循环结构。while循环的一般格 式如下所示: while(<condition>) { <可执行语句序列> }
4
5.2.2 while循环的使用实例
21
5.9 小结
循环结构是C语言程序设计中一种非常重要的编程结构,用于让计 算机反复执行,完成大量类同的计算。主要包括while结构、dowhile结构、for结构和goto语句实现的循环结构,这4种结构可以 嵌套使用。本章主要讲述了这4种循环结构的语法和使用,并对这 4种循环结构进行了对比。
计算机二级C语言 第5章 循环结构
例如:计算1+2+3+…+100。 main() { int i,sum=0; i=1; while(i<=100) { sum+=i; i++; } printf("d\n",sum);} 程序运行结果为: 5050
(1)循环语句中“sum+=i”相当于“sum=sum+i”, 建议读者采用前一种写法,因为它不仅比后一种 写法编码短,而且更能体现C语言的特色。 (2)注意 注意,在循环体中应有使循环趋于结束的语句。 注意 例如,本例中的“i++;”,每循环一次i的值就增加 1 1,当i>100时,循环条件就不满足,循环到此结 i>100 束。如果无此语句,则i的值一直不变,循环永不 结束,这就称为“死循环”。在程序设计中,是 不允许死循环出现的。 重点提示: ※重点提示:在循环体中应有使循环趋于结束 的语句。在程序设计中,是不允许死循环出现的。
5.1.2 while循环的执行过程
while循环的执行过程是:计算while后表达式的值, 当值为非零时,执行循环体中的语句; 当值为零时,退出while循环。
注意: 注意 进入while循环后,一定要有能使此表达式的值变为0的操作,否则,循环
将会无限制的进行下去,即进入死循环。在程序设计中,这个是不允许出现 的。
5.3.3 有关for语句的说明 (1)for语句的一般形式中的“表达式1”可以省略,即: for(;表达式2;表达式3) 循环语句; 但注意省略表达式1时,其后的分号不能省略。此时,应在 for语句之前给循环变量赋初值。 (2)如果省略表达式2,即: for(表达式1;;表达式3) 循环语句; 则表示表达式2的值始终为真,循环将无终止地进行下去。 例如: for(i=1;;i++) printf("%d",i); 将无限循环输出1,2,3,4,5,6,……
全国计算机等级考试2C课程第5讲 循环结构程序设计.ppt
{
b+=a;
a+=2;
}
printf(“%d,%d\n”,a,b);
}
程序运行后的输出结果是
A)9,18
B)8,11C)7,11
D)10,14
2020/8/16
作者:张旭仟 版权所有 欢迎盗版
14
循环的嵌套
while循环、do while循环、for循环可以互相嵌套, 且层数不限。
(1) while() { …… while() { …… } …... }
100
n
n 1
#include <stdio.h>
main()
{ int i,sum=0;
i=1;
do
{ sum+=i;
i++;
}while(i<=100);
printf("%d",sum);
}
2020/8/16
作者:张旭仟 版权所有 欢迎盗版
7
while和do~while比较
例 while和do~while比较
2020/8/16
作者:张旭仟 版权所有 欢迎盗版
11
for循环
For循环和while循环的比较
for语句最简单的使用,例如:
for(i=1;i<=100;i++) sum=sum+i;
如果用while循环表示,如下所示:
i=1; while(i<=100) { sum=sum+i;
i++; }
if(x>0&&x>max) max=x; } if(max!=-1) printf(“max=%d”,max); }
计算机二级C语言第五章 循环结构
一般形式:while(表达式)循环体
注意: (1)while语句的循环体可能一次都不执行,因为while后圆括号中的条件表达式可能一开始就为0。 (2)当循环体需要无条件循环,条件表达式可以设为1(恒真),但在循环体内要有带条件的非正常出口(break等)。
有如下程序 #include <stdio.h> main() {
int i,f=1,s=0; for(i=1; i<100; i++) {
s=s+f*i; f=-f; i++; } printf("s=%d\n",s); }
程序的功能是()。 A.计算1*2*3*4*...*99的值 B.计算1-2+3-4+...-99的值 C.计算1-3+5-7+...-99的值 D.计算1*3*5*7*...*99的值
重要区别是:
while循环的控制出现在循环体之前,只有当while后面条件表达式的值为非0时,才可能执行循环体, 因此循环体可能一次都不执行;在do-while构成的循环中,总是先执行一次循环体,然后再求条件表 达式的值,因此,无论条件表达式的值是0还是非0,循环体至少要被执行一次。
以下叙述正确的是() A.do-while语句构成的循环,当while语句中的表达式值为0时结束循环 B.do-while语句和while-do构成的循环功能相同 C. do-while语句构成的循环,当while语句中的表达式值为非0时结束循环 D.do-while语句构成的循环,必须用break语句退出循环
c语言第5章循环结构程序设计课件
第五章 循环结构程序设计
典型例题(例5-8) :求两个整数的最大公约数、最小公倍数
12 8 4 mn r
84
0
mn r
最大公约数 4 最小公倍数 12*8/4=24
求最大公约数的N-S流程图
辗转相除法
7
第五章 循环结构程序设计
void main( )
{ int n, m, nm, r, t; printf( " Enter m, n= ? " ) ; scanf( " % d% d" , & m, & n) ; nm= n* m; if ( m< n)
例如: for(i=1;i<=n;) { t=t*i; i++; } (4)可以省略表达式1和表达式3,只有表达式2 , 即只给循环条件。
i=1; for(;i<=n;)
{t=t*i; i++;}
14
第五章 循环结构程序设计
(5) 3个表达式都可省略。 例如: for(;;) 语句 相当于 while(1)语句。
3
第五章 循环结构程序设计
例: 编程序求: s=1+2+3+……+100
main()
{ int s=0,i=1;
while (i<=100) { s=s+i;
思考:如何求n!
i++; }
printf("S=%d",s); }
4
第五章 循环结构程序设计 二、 do...while语句
Do-while语句的一般形式为:
(1) while( ) {… while( ) {…}
C言语课件-第5章 循环结构程序设计
C言语课件-第5章 循环结构程序设计
循环结构的概念
1 基本概念
循环结构是一种程序设计结构,用于重复执 行特定的代码块。
2 分类
循环结构可以分为while循环、do while循环和 for循环。
3 循环流程控制结构
循环结构由控制条件、循环体和循环控制语 句组成。
3 下一学习步骤建议
提供学习者下一步继续深入学习的建议和资源。
4 循环的几种实现方式
循环可以通过不同的控制条件和循环体实现 不同的功能。
while循环
1 语法格式
while(条件表达式) { // 循环语句块
}
2 例子讲解
使用while循环计算1到100的和。
do while循环
1 语法格式
do { // 循环语句块
} while(条件表达式);
2 例子讲解
1 游戏规则
玩家猜测计算机生成的随 机数字,根据提示进行猜 测,直到猜对或者达到最 大次数。
2 代码实现分析
介绍猜数字游戏的代码实 现思路和算法。
3 代码实现细节讲解
详细演示如何使用循环结 构实现猜数字游戏。
小结
1 学习重点回顾
回顾循环结构的概、语法和应用场景。
2 学习难点梳理
梳理学习过程中遇到的难点和需要进一步掌握的知识点。
1 break语句
用于跳出循环体,终止循环的执行。
2 continue语句
用于跳过本次循环的剩余代码,继续下一次 循环。
循环小结
1 循环的优缺点
循环结构可以使代码更简洁、高效,但滥用可能导致逻辑错误和性能问题。
2 循环应用的场景举例
循环结构常用于处理数组、列表、文件等需要重复操作的情况。
c语言第五章知识点
c语言第五章知识点C语言第五章知识点C语言是一种高级编程语言,它的第五章主要讲解了C语言中的循环结构和分支结构。
这两种结构是编程中非常重要的基础知识,掌握它们可以让我们更加灵活地编写程序。
一、循环结构循环结构是指在程序中重复执行某段代码的结构。
C语言中有三种循环结构:while循环、do-while循环和for循环。
1. while循环while循环是最基本的循环结构,它的语法格式如下:while (条件表达式){循环体语句;}while循环的执行过程是:先判断条件表达式的值是否为真,如果为真,则执行循环体语句;执行完循环体语句后再次判断条件表达式的值,如果为真,则再次执行循环体语句,以此类推,直到条件表达式的值为假为止。
2. do-while循环do-while循环与while循环的区别在于,do-while循环先执行一次循环体语句,然后再判断条件表达式的值。
它的语法格式如下:do{循环体语句;} while (条件表达式);do-while循环的执行过程是:先执行一次循环体语句,然后判断条件表达式的值是否为真,如果为真,则再次执行循环体语句,以此类推,直到条件表达式的值为假为止。
3. for循环for循环是最常用的循环结构,它的语法格式如下:for (表达式1; 表达式2; 表达式3){循环体语句;}for循环的执行过程是:先执行表达式1,然后判断表达式2的值是否为真,如果为真,则执行循环体语句;执行完循环体语句后再执行表达式3,然后再次判断表达式2的值,以此类推,直到表达式2的值为假为止。
二、分支结构分支结构是指根据条件的不同,执行不同的代码块。
C语言中有两种分支结构:if语句和switch语句。
1. if语句if语句是最基本的分支结构,它的语法格式如下:if (条件表达式){代码块1;}else{代码块2;}if语句的执行过程是:先判断条件表达式的值是否为真,如果为真,则执行代码块1;如果为假,则执行代码块2。
全国计算机二级C语言程序设计讲义 三种循环结构
直到型循环。
方框图及执行过程 :
0(假) 表达式 非 0(真) 语 句
非 0 (真) 表达式 0 (假) 语句 A
当型循环
直到型循环
一、while 语句
格式:
while (< 表达式 >) 语句A;
流程图:
表达式 0 (假)
非 0 (真) 语句 A
若表达式(条 件)的值为真,则 执行内嵌语句A, 再判断表达式(条 件)·,当表达式 · · 的值为假时,执行 while后面的语句。
求和表达式: 初值: 循环次数 i :
S=S+i S=0 1~100
流程图:
定义 变 量 s, i
程序: main ( ) { int s, i;
s=0, i=1;
s = 0,i = 1;
N
i≤ 100
while ( i < = 100 )
Y
s+=i;
{ s+=i;
i++; }
循环条件控制语句
i++;
表达式3 :修改循环变量的值。
语句 :循环体
流程图:
表达式1
表达式2 真 语句
假
表达式3
For循环的 下一语句
说明:
for语句的一般形式中的“表达式1”可以省略。 此时应该在for语句之前给循环变量赋初值。 如果表达式2省略,即不判断循环条件(认为表达 式始终为真),循环会无终止的运行下去。
表达式3省略时,应另外设置条件保证循环能正常 结束。如在循环体内修改循环变量。
printf("%d,%d\n",x,y); 循环变量赋初值 该语句输出如下: 循环条件 循环变量增值
计算机等级考试C语言--第5章 循环结构
程序输出结果: n = 31, sum = 10416
5.1 while语句和用while语句构成的循环结构
【例5.2】用π/4=1-1/3+1/5-1/7+1/9-…公式求π的值,直到最后一项的绝对值小于10-6 #include <stdio.h> #include<math.h> main() {
5.1 while语句和用while语句构成的循环结构
【例5.1】求12+22+32+...+n2,直到累加和大于或等于10000为止 #include <stdio.h> main() {
int i, sum; i = 0; sum = 0; while(sum < 10000) {
sum += i*i; i++; } printf(“n=%d, sum=%d\n”, i – 1, sum); }
do-while语句构成的循环结构
说明:
do-while循环结构的一般形式: do
循环体 while (表达式); 例如: do {
i++; s+= i; } while (i < 10);
1. do是C语言的关键字,必须和while联合使用 2. do-while循环由do开始,至while结束,在while(表达 式)后的分号”;”不能省略,它表示do-while语句的结束 3. while后圆括号中的表达式,可以是C语言中任意合法的 表达式,由它控制循环是否执行 4. 循环体中可以是一个语句,也可以是复合语句,复合语 句需要使用大括号括起来
5.2 do-while语句和用do-while语句构成的循环结构
计算机二级C语言、循环结构
第五章循环结构引言:循环结构用于在给定条件成立时,反复执行某个语句组,反复执行的语句组称为循环体。
循环体可以是复合语句,也可是单一的语句或空语句。
1. while语句(1) 一般形式:while(表达式)循环体int k=0;while(k<10){printf(“*”);k++;}printf(“end”);while是关键字;while后圆括号中的表达式可以是c语言中任意合法的表达式,但它不可以为空。
它用来判断是否执行循环体;循环体在语法上认为是一条语句,若有多条则应用复合语句。
(2) 执行过程:表达式为真进入循环,表达式为假退出循环。
int k=0;while(k<10){printf(“*”);k++;}printf(“end”);0<10 * 11<10 * 2……..9<10 * 1010<10 假end(3) 表达式为循环控制条件。
结束循环:改变条件表达式的值,使其最终为假条件恒真,强行退出int k=0;while(k<10){printf(“*”);k++;}printf(“end”);int k=0,n=0;while(k<10){printf(“*”);n++;if(n>=10) break;}printf(“end”);0<10 * 1 jia0<10 * 2 jia ………0<10 * 9 jia0<10 * 10 breakend(4) 程序举例:累加思想:编写程序,求12+22+..+n2直到累加和大于或等于10000为止。
123….i++ i*i用∏/4=1-+-+…..公式求∏的近似值,直到最后一项的绝对值小于10-6为止。
1 1/11/3 1/(1+2)1/5 1/(3+2)fm=fm+2t=1/fms=1 s=-s#include<stdio.h>#include<math.h>main(){double sum=0,fm=1,pi,t=1; int s=1;while(fabs(t)>=1e-6) {sum=sum+t*s;fm=fm+2;t=1.0/fm;s=-s;}pi=4*sum;printf(“%f\n”,pi);}1>=1e-6 0+1*1 3 1.0/3 -11/3>=1e-6 1+1/3*-1 5 1.0/5 11/5>=1e-6 ….+1/5 7 1.0/7 -1…….迭代思想:用迭代法求方程x=cos x的根,要求误差小于10-6.2. do—while 语句(1) 一般形式:do循环体while(表达式) ;printf(“end”);int k=0;do{printf(“*”);k++;}while(k<10);printf(“end”);注:do---while联合使用;do---while整体作为一条语句,故后面的分号不可少;while后圆括号中的表达式为c语言中一个任意合法的表达式,它决定了是否执行循环体;循环体语法上认为是一条语句,若有多条则应用复合语句。
c语言二级 第五章
表达式3
2014年6月23日星期一
主讲教师:李 黎
13
/*省略表达式1,放在for循环外语句中,但 表达式1后的分号不能少*/
2014年6月23日星期一
主讲教师:李 黎
14
/*此处的“;”表示循环体是 空语句,实际上for语句是 不能加分号的*/
2014年6月23日星期一
2014年6月23日星期一 主讲教师:李 黎 4
二、while语句执行步骤如下:
1、先计算表达式的值。如果值为“非0 ”,则 执行步骤2;如果值为“0”,则执行步骤3 ; 2、执行语句,即while循环体; 3、转去执行步骤1; 4、退出while循环。
表达式 真 语句(循环体) 假
2014年6月23日星期一
2014年6月23日星期一
主讲教师:李 黎
22
★
/*2是质数,直接打印*/ /*设置一个变量tag作为标识,初值设为0*/ /*sqrt为求平方根函数*/ /*i能被2到i的平方根之间的数整除,则i 不是质数,标识tag的值为1,*/ /*内层循环结束之后,若标识tag的值为0 ,则i为质数,打印出i 的值*/
主讲教师:李 黎
15
上例中表达式2用整型表达式表示,其实是可以的,只要表 达式2判断结果为非0,就可以执行循环语句表达式3,如果 表达式2判断结果是0,就退出循环。 建议考生不要使用变形后的for循环语句,而要用标准的for 循环语句编写程序。
主讲教师:李 黎 16
2014年6月23日星期一
★考点四、循环结构的嵌套
26
注意,continue语句与break语句的区别在于,它并 没有终止整个循环。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序段 修改循环变量
循环体
先 判 断 后 执 行
循环结构的框图结构(2)
先 执 程序段 循环体 行 修改循环变量 后 no 判 条件成立否 断 yes 初始化变量
循环语句
定义
在给定条件成立时,重复执行某个程序段的语句 称为循环语句,重复执行的程序段称为循环体。 循环体可以是单个C语句、空语句或复合语句。
格式
break说明: (1)break语句不能用于循环语句和switch 语句之外的任何其他语句中。 (2)break语句只能用于循环体内,不能用 在循环语句上。如for(i=1;i<10;break,i++) 是不正确的。 (3)break语句只能跳出一层循环,即从当 前循环层中跳出。如果要跳出多层循环, 可使用goto语句。
100 i =1 =1
for语句
格式 功能 框图 比较 用表达式1给循环变量赋初值,然后再 表达式1给循环变量赋初值, for (表达式1;表达式2;表达式3) (表达式 表达式1 表达式2 表达式3) 判断表达式 的是否成立, 表达式2 判断表达式2的是否成立,为非0时,重 0 语句 表达式2 表达式2 复执行循环体,然后再利用表达式3修改循 然后再利用表达式 表达式3 复执行循环体,1为循环变量赋初值; 非0 其中:表达式1 其中:表达式 为循环变量赋初值; 环变量,表达式2为循环重复执行的条件; 再判断表达式 表达式2 环变量,表达式2语句 2的值;表达式2的值 再判断表达式 的值;表达式2 为循环重复执行的条件; 表达式3 表达式 退出循环。 3 为0时,退出循环用来给循环变量增值。 。 表达式3 表达式3用来给循环变量增值。
continue语句与break语句的区别 例如:打印出数字0~10,但跳过(即不输出)数字5。 main() { int i; for(i=0;i<=10;i++) { if(i==5) continue; printf("%5d",i); } } 程序运行结果为: 0 1 2 3 4 6 7 8 9 10
do~while语句程序举例
#include <stdio.h> main () {int sum, i; do~ /*循环变量赋初值*/ 用do~while语句编程求 i=1; sum=0; while语句编程求 ∑ i /*循环变量赋初值 循环变量赋初值* do {sum+=i; i++; /*修改循环变量*/ /*修改循环变量 修改循环变量* } while(i<=100); printf("%d", sum); }
continue说明:
(1)continue语句只是结束循环结构中的本次 循环,并非跳出整个循环过程。具体说:对 while和do~while语句,遇continue语句后, 转向执行while之后圆括号内的条件表达式的 判断;对for语句,遇continue语句后,转向 执行表达式3。 (2)执行continue语句并没有使整个循环终止。 (3)continue语句与break语句有本质的区别: continue语句只是结束本次循环,而不终止整 个循环的执行;而break语句的作用则是强制 终止整个循环过程。
Continue语句举例--2
#include <stdio.h> main( ) {int n; 100~200之间能被 整除的数。 之间能被3 求100~200之间能被3整除的数。 for(n=100; n<=200; n++;) continue {if(n%3!=0)__________; printf("%5d", n); } continue语句结束本次 语句结束本次 }
循环结构的应用场合
s?=1*1+2*2+… s=1*1+2*2+3*3 …+100*100 1*1+2*2+…… 1*1+2*2+3*3 +99*99+ =? 100*100=?
for (i=1,s=0;i<=100;i++) s+=i*i;
循环结构的框图结构(1)
初始化变量
no 条件成立否 yes
三种循环的比较
死循环
永远不会退出的循环为死循环
for (;;) {} while (1) {} do { }while (1)
一般情况下,要极力避免死循环. 绝大多数程序不需要死循环。 时间过长的循环会造成“假死” 效果,也要考虑解决
for语句程序举例--1
#include <stdio.h> main () for语句编程求 用for语句编程求 ∑ i {int sum, i; sum=0; for ( i=1 ; i<=100; i++ ) sum=sum+i; printf("%d", sum); }
第五章
循环结构
循环结构
3.1.循环结构的应用场合 3.1.循环结构的应用场合 3.2.循环结构的流程图表示 3.2.循环结构的流程图表示 3.3.循环语句 3.3.循环语句 3.4.*单重循环问题应用举例 3.4.*单重循环问题应用举例 3.5.嵌套循环及其应用举例 3.5.嵌套循环及其应用举例 3.6.转移控制语句 3.6.转移控制语句
100 i =1 =1
} printf("%d", sum); }
i=i+1 输出总和sum 输出总和sum
do~while语句
格式 功能 框图 举例 实现的是直到型循环,do~while语 实现的是直到型循环,do~while语 Do 语句 句先执行语句,然后再判断表达式的值是 语句 否为0,为非0时,重复执行语句,否则, 非0 While(表达式 表达式 While(表达式); 表达式); 退出循环。 0
循环体
循环结构 while语句 while语句 do--while语句 do--while语句 --while for语句 for语句
while语句
当表达式值为非0 执行其后语句。 功能 当表达式值为非0时,执行其后语句。
格式 框图 举例
While(表达式 语句/ While(表达式) 语句/语句组 表达式)
循环,进行下一次循环 下一次循环 循环,进行下一次
表达式
0
非0
语句
While程序举例
#include <stdio.h> main () {int sum, i; sum=0, while语句编程求 用while语句编程求 ∑ i i=1 i=1; sum=0; /*循环初始化*/ /*循环初始化 循环初始化* 小于等于100 当i小于等于100 while(i<=100) {sum=sum+i; sum=sum+i i++; /*修改循环变量*/ /*修改循环变量 修改循环变量*
100 i =1 =1
break语句和continuБайду номын сангаас语句
功能
在循环语句中, break语句跳出循环 在循环语句中,遇break语句跳出循环; 语句跳出循环; 在开关语句中, break语句跳出开关语 语句跳出 在开关语句中,遇break语句跳出开关语 continue语句结束本次循环 语句结束本次循环, 句;遇continue语句结束本次循环,进 下一次循环 循环。 行下一次循环。 break; break; continue;
表达式1 表达式1
for和while语句之后一般没有分号 语句之后一般没有分号, 5. 在for和while语句之后一般没有分号,有分号 3.while和do--while语句只在while后指定 --while语句只在while 3.while和do--while语句构造。 1.for语句可由while语句构造 while后指定 语句可由while 语句只在 1.for语句可由while语句构造。 4.while和do--while语句的循环初始化应在 --while 4.while和do--while语句的循环初始化应在 2.for语句和while语句是先判断,后执行。 语句和while语句是先判断 2.for语句和while语句是先判断空循环体) 三种循环结构的使用原则! ,后执行。 6. 三种循环结构的使用原则! (空循环体) 表示循环体就是分号之前的内容( 表示循环体就是分号之前的内容 循环条件, 1;表达式2;表达式3)语句 循环条件,循环体中应包含使循环结束 for(表达式 while语句前完成 for(表达式1;表达式2;表达式3) while和do--while语句前完成。 --while语句前完成。 while表达式1;表达式2;表达式3)语句 和do-对于该循环的循环体有可能一次也不执 如果循环次数已知, 如果循环次数已知, 例如:while (i表达式1用for 例如:while (修改循环变量)。 的语句( < 100); 的语句 等价于: 表达式1; 等价于: 修改循环变量) for循环的循环初始化可以在表达式 循环的循环初始化可以在表达式1 for循环的循环初始化可以在表达式1中实 行。 i++; 如果循环次数未知, 3中包含使循环趋于结 如果循环次数未知,用while for循环可在表达式 循环可在表达式3 2) for循环可在表达式 while(表达式 while(表达式2) 表达式 现。while语句是先执行,后判断。至少 do—while 0; i < 100; 后判断。 先执行, do while语句是先执行 i++); for (i =(修改循环变量),甚至可将循环 如果循环体至少要执行一次, do如果循环体至少要执行一次,用do-while 束的语句(修改循环变量) 束的语句 语句; {语句; printf("%d", i); 执行一次循环体。 执行一次循环体。 体全部放入表达式3 。凡用while while循环能 体全部放入表达式3中3; 这只是“一般”原则,不是“原则” 这只是“一般”原则,不是“原则” 循环能 表达式3 凡用while 表达式 另外,for通常有一个循环变量控制循环的次数, ,for通常有一个循环变量控制循环的次数 另外,for通常有一个循环变量控制循环的次数, 实现的, for循环都能实现! 循环都能实现! 实现的,用for} 循环都能实现 不要在循环体内改变这个变量。 不要在循环体内改变这个变量。