第5章+循环控制结构程序设计讲解

合集下载

C语言 第五章-循环结构程序设计

C语言 第五章-循环结构程序设计

执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/

循环控制结构程序设计

循环控制结构程序设计
现式旳值一开始为“假”,则循环体一次也不执行。 (2) while语句中旳体现式一般是关系体现式或逻辑体现式
,只要体现式旳值为真(非0)即可继续循环。 (3) 为使循环能够正确开始运营,需要对循环控制变量初
始化。 (4) 循环体中,假如包括一种以上旳语句,则应用花括号
括起来,构成复合语句,不然while语句旳范围只到 while背面第1个分号处。 (5) 循环体内中应有使循环趋向于结束旳语句。
一种循环外面包围多层循环称为多重循环。 循环嵌套旳层数理论上无限制。
C语言程序设计基础教程
§5.4 循环嵌套
在使用循环嵌套时应注意下列几点: (1) 在嵌套旳各层循环中,应使用复合语句(即用一对花括
号将循环体语句括起来),以确保逻辑上旳正确性; (2) 内层和外层循环控制变量不应同名,以免造成混乱; (3) 嵌套循环最佳采用右缩进格式书写,以确保层次旳清楚
第5章 循环构造程序设计
《C语言程序设计基础教程》
C语言程序设计基础教程
5.1 while语句 5.2 do…while语句 5.3 for语句 5.4 循环旳嵌套 5.5 几种循环旳比较 5.6 break和continue语句 5.7 程序举例
C语言程序设计基础教程
循环构造是构造化程序设计旳基本构造之一,它旳 特点是,在给定条件成立时,反复执行某程序段,直到 条件不成立为止。给定旳条件称为循环条件,反复执行 旳程序段称为循环体。C语言提供了多种实现循环旳语 句,能够构成多种不同形式旳循环构造。
#include"stdio.h"
main()
{
int i=1,sum=0;
while(i<=100)
{
sum=sum+i; i++;

第五章 C语言多重循环语句ppt课件

第五章  C语言多重循环语句ppt课件
scanf(“%f”,&Weight); /*第7个儿童的体重*/ total=total+ Weight; /*前7个儿童的总体重*/
scanf(“%f”,&Weight); /*第8个儿童的体重*/ total=total+ Weight; /*前8个儿童的总体重*/
scanf(“%f”,&Weight); /*第9个儿童的体重*/ total=total+ Weight; /*前9个儿童的总体重*/
unsigned n,sum=0; scanf(“%u”,&n); do { sum+=i ;
int i; float Weight, total=0, aver;
*输入N个儿童的体重并计算总体重*/
for(i=1;i<=N;i++) {
scanf(“%f”,&Weight); /*第i个儿童的体重*/ total=total+ Weight; /*i个儿童的总体重*/
}
aver=total/N;
scanf(“%f”,&Weight); /*第1个儿童的体重*/ total=total+ Weight; /*前1个儿童的总体重*/
scanf(“%f”,&Weight); /*第2个儿童的体重*/ total=total+ Weight; /*前2个儿童的总体重*/
scanf(“%f”,&Weight); /*第3个儿童的体重*/ total=total+ Weight; /*前3个儿童的总体重*/
/*10个儿童的平均体重*/
printf(“%d个儿童的平均体重是:%.2\n”,N,aver); }

五章节控制结构与循环结构程序设计.ppt

五章节控制结构与循环结构程序设计.ppt

5.1 选择控制结构
产生背景:需要根据给定的条件进行分析、比较和判断,并 根据判断结果采取不同的操作。 在VB中,选择结构通过条件语句来实现。条件语句也称为 IF语句,有两种格式,一种是单行结构,一种是块结构。
5.1.1 单行结构条件语句
格式:If 条件 Then 语句1 [Else 语句2] 功能:如果条件成立,执行语句1,然后执行If语句的下一条语 句;如果有[Else 语句2]的可选部分,条件不成立时执行语句2, 然后执行If语句的下一条语句;如果条件不成立且没有可选部 分,则直接执行If语句的下一条语句。 举例: If a>b Then Print "a>b" If a/3=int(a/3) Then Print "a能被3整除"
注意: ►步长为负时,循环变量每加一次步长,值变小。步长为零时, 循环变量值不变,因此循环体内如果无Exit For 语句,则进 入死循环。在设计时运行程序进入死循环可以使用 Ctrl+Break,终止程序执行。 ►在For循环语句中,For 和 Next是一对语句,必须成对出现, 缺一不可。 ►可以嵌套使用,但是循环变量名必须使用不同的变量名,而 且不可以书写交叉的For循环语句。
格式:result=IIf(条件,表达式1,表达式2) 功能:如果条件成立,返回表达式1的值,否则返回表达式2的 值。 说明: ►result是函数的返回值,“条件”是一个逻辑表达式。 ►IIf函数中的3个参数都不能省略,且要求表达式1、表达式2和 结果变量的类型一致。
举例:
如果成绩>=60,给变量赋值“及格”,否则赋值“不及格”。 Mchr=IIf(Mcj>=60,"及格","不及格") 如果成绩>=90,给变量赋值“优秀”,如果成绩>=60,给变量赋 值“及格”,否则赋值“不及格”。 Mchr=IIf(Mcj>=90,"优秀",IIf(Mcj>=60,"及格","不及格"))

第5章 循环结构程序设计PPT课件

第5章 循环结构程序设计PPT课件

}
C语言程序设计
第5章 循环结构程序设计
§ 5.2 用while语句实现循环i=1w; hile (i<=100)
2、while语句的注意事项
{ sum=sum+i;
注意:
i++; }
(1) 循环体如果包含一个以上的语句,应该用花括弧括
起来,以复合语句形式出现
(2) 在循环体中应有使循环趋向于结束的语句。如果无
C语言程序设计
第5章 循环结构程序设计
§ 5.2 用while语句实现循环
1、while语句的一般形式
while语句用来实现“当型”循环结构 一般形式: while (表达式)
循环体语句
当表达式为非0值时,执行while 语句中的循环体语句 其特点是:
先判断表达式,后执行语句
C语言程序设计
第5章 循环结构程序设计
} 运行结果:
}
1↙ sum=55 再运行一次:
}说明:当while后面的表达式的第一次的
值为“真”时,两种循环得到的结果相
11↙ sum=0
同。否则,二者结果不相同
C语言程序设计
第5章 循环结构程序设计
§ 5.4 用for语句实现循环
1、for语句的一般形式
C语言中的for语句使用最为灵活,不仅可以用于 循环次数已经确定的情况,而且可以用于循环次数 不确定而只给出循环结束条件的情况,它完全可以 代替while语句
语句,转到第(5)步
(3) 求解表达式3
(4) 转第(2)步骤继续执行
(5) 循环结束,执行for语句下面的一个语句
C语言程序设计
第5章 循环结
执行表达式1
循环初始条件

第五章 循环与分支程序设计

第五章 循环与分支程序设计
12
continue: add loop mov loop ……
2. 分支程序设计
? ? … case 1 case 2 case n case 1 case 2 case n
CASE 结构
(1) 逻辑尺控制 (2) 条件控制
IF-THEN-ELSE 结构
(3) 地址跳跃表(值与地址有对应关系的表) 地址跳跃表(值与地址有对应关系的表)
13
x(x1,x2,…… x2,……,x10) 例:有数组 x(x1,x2,……,x10) 和 y(y1,y2,……,y10), (z1,z2,…… z2,……,z10) 编程计算 z(z1,z2,……,z10) z1 = x1 z2 = x2 z3 = x3 z4 = x4 z5 = x5 z6 = x6 z7 = x7 z8 = x8 z9 = x9 + y1 + y2 - y3 - y4 - y5 + y6 - y7 - y8 + y9
3
1. 循环程序设计
初始化
初始化
N N
控制条件
Y
循环体 控制条件
Y
循环体
DO-WHILE 结构
DO-UNTIL 结构
4
初始化:设置循环的初始状态 循环体:循环的工作部分及修改部分 控制条件:计数控制
特征值控制 地址边界控制
5
例:把 BX 中的二进制数以十六进制的形式显示在屏幕上
BX
1
2 3
4je lea L: shr jnb jmp add1: add jmp continue: …… routine1: …… routine2: …… al, 0
(寄存器间接寻址) 寄存器间接寻址)
continue bx, branch_table ;逻辑右移 al, 1 逻辑右移 ;jnb=jnc add1 ;段内间接转移 word ptr[bx] bx, type branch_table L

大一C语言教材《C语言程序设计》第5章 循环程序设计

大一C语言教材《C语言程序设计》第5章 循环程序设计


复合赋值运算符
种类:+= -= *= /= %= 《= 》= &= 含义: 变量 op= 表达式 变量 = 变量

^= |= op 表达式
x%=3 x*=y+8 a+=3
x=x%3 x=x*(y+8) a=a+3
运算符和表达式

说明:

结合方向:自右向左 左侧必须是变量,不能是常量或表达式
例 int i; 例 3=x-2*y; i=2.56; //结果 i=2; a+b=3;

赋值转换规则:使赋值号右边表达式值自动 转换成其左边变量的类型
赋值表达式的值与变量值相等,且可嵌套g a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) //表达式值为5,a,b,c值为5 // b=5;a=5 //表达式值11,c=6,a=11 //表达式值10,a=10,b=4,c=6 //表达式值5,a=5,b=10,c=2
例 -i++ i=3;
-(i++) printf(“%d”,-i++);
//-3
无论是作为前缀还是作为后缀运算符,对于变量本身来 说自增1或自减1都具有相同的效果,但作为表达式来说却有 着不同的值。

j=3; k=++j; j=3; k=j++; j=3; printf(“%d”,++j); j=3; printf(“%d”,j++); a=3;b=5;c=(++a)*b; a=3;b=5;c=(a++)*b;

c5第五章 循环结构程序设计

c5第五章 循环结构程序设计

conio是Console Input/Output(控制台输 入输出)的简写,其中定义了通过控制 台进行数据输入和数据输出的函数,主 要是一些用户通过按键盘产生的对应操 作,比如getch()、putch()函数等等。
2
附件: warning C4013: „system‟ undefined; assuming extern returning int 警告信息的解决

4
5.1 while语句
1、while 语句 常称为“当型”循环语句。
表达式
!0 循环体
0
5
2 、while 语句的形式: while (表达式)
循环体;

特点:先判断表达式,后执行语句。 说明: – 循环体有可能一次也不执行 – 循环体可为任意类型语句 – 下列情况,退出while循环 • 条件表达式不成立(为零) • 循环体内遇break,return,goto – 无限循环:
7
例 (ch5_02.c)显示1~10的平方
#include <stdio.h> #include <conio.h> main() { int i=1; while(i<=10){ 运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100 8
printf("%d*%d=%d\n",i,i,i*i);
i++; } getch(); }
5.2 do--while语句
1、do--while语句 常称为“直到型”循
环语句。
循环体
!0
表达式
0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include"stdio.h"
main()
{
int i=0;
for(i=3;i<=100;i++)
if(i%3==0&&i%10==2)
printf("%4d",i); printf("\n");
程序运行结果如下: 12 42 72
}
2019/6/19
C语言程序设计基础教程
20
§5.3 for语句
printf("%d\n",sum);
} 2019/6/19
C语言程序设计基础教程
10
§5.2 do…while语句
使用do-while语句应注意以下几点:
(1) do是C语言的关键字,必须与while联合使用。
(2) 在if语句、while语式后面必须加分号,它表示do-
2019/6/19
C语言程序设计基础教程
14
§5.3 for语句
for语句是循环控制结构中使用最广泛的一种循环控 制语句,特别适合用于已知循环次数的情况。
1)格式: for(表达式1;表达式2;表达式3)语句
2)执行过程
2019/6/19
C语言程序设计基础教程
15
§5.3 for语句
【例5-6】用for语句求1~100的累计和。
25
§5.5 几种循环的比较
几种循环的比较如下: (1) 3种循环都可以用来处理同一个问题,一般可以互相代替。 (2) while和do-while循环,循环体中应包括使循环趋于结束的
语句。for语句功能最强。 (3) 用while和do-while循环时,循环变量初始化的操作应在
while和do-while语句之前完成,而for语句可以在表达式1中 实现循环变量的初始化。 (4) while循环、do-while循环和for循环,可以用break语句跳出 循环,用continue语句结束本次循环(break语句和continue 语句见5.6节)。
#include"stdio.h"
main()
{
int i=1,sum=0;
while(i<=100)
{
sum=sum+i; i++;
程序运行结果如下: 5050
}
printf("%d\n",sum);
} 2019/6/19
C语言程序设计基础教程
5
§5.1 while语句
使用while语句应注意以下几点:
2019/6/19
C语言程序设计基础教程
9
§5.2 do…while语句
【例5-3】用do-while语句求1~100的累计和。
#include"stdio.h"
main()
{
int i=1,sum=0;
do
{
sum=sum+i; i++; }
程序运行结果如下: 5050
while(i<=100) ;
int i;
for(i=100;i<=1000;i++)
if(i%4==0&&i%6==0)
{
s=s+i;
printf("%5d",i);}
2019/6/19 printf("s=%Cf语\n言",s程);}序设计基础教程
19
§5.3 for语句
【例5-8】在3~100之间所有3的倍数中,找出个位数为2的数。
#include"stdio.h"
main()
{
char c;
printf("\nPlease input a string:");
do { c=getchar();
putchar(c); }
程序运行结果如下: Please input a string:Homework in the school↙ Homework
C语言程序设计基础教程
21
§5.3 for语句
{ sn=sn+2*hn; hn=hn/2;
} printf("the total of road is %f\n",sn); printf("the tenth is %f meter\n",hn); }
2019/6/19
程序运行结果如下: the total of road is 299.609375 the tenth is 0.097656 meter
循环结构是结构化程序设计的基本结构之一,它的 特点是,在给定条件成立时,反复执行某程序段,直到 条件不成立为止。给定的条件称为循环条件,反复执行 的程序段称为循环体。C语言提供了多种实现循环的语 句,可以组成各种不同形式的循环结构。
用while语句 用do-while语句 用for语句
#include"stdio.h"
main()
{
int s=0,n=1;
for(n=1;n<=100;n++)
s=s+n;
printf("s=%d\n",s); }
程序运行结果如下: 5050
2019/6/19
C语言程序设计基础教程
16
§5.3 for语句
使用for语句应注意以下几点: (1) for循环中的“表达式1(循环变量赋初值)”、“表达
do{ s = s + n; n++;} while(n<= 10); printf("%d",s); }
输入: 1↙ 结果: 55 输入: 11 ↙ 结果: 0
输入: 1↙ 结果: 55 输入: 11 ↙ 结果: 11
2019/6/19
C语言程序设计基础教程
13
§5.2 do…while语句
当输入i的值小于或等于10时,两者得到的结果相同 。而当i>10时,两者结果不同。这是因为此时对while循 环来说,一次也不执行循环体(表达式“i<=100”为假) ,而对do-while循环语句来说,则要执行一次循环体。 可以得到结论:当while后面的表达式的第1次的值为“ 真”时,两种循环得到的结果相同,否则,两者结果不 相同(指两者具有相同的循环体的情况)。
2019/6/19while(c!='C')语;} 言程序设计基础教程
12
【例5-5】while语句和do-while语句的比较。
main( ) { int s=0,n;
main( ) { int s=0,n;
scanf("%d",&n);
scanf("%d",&n);
while(n<= 10) { s = s + n; n++;} printf("%d",s); }
2019/6/19
C语言程序设计基础教程
3
§5.1 while语句
while语句可以用来实现“当型”循环结构。 1)格式: while(表达式)语句 2)执行过程
其特点是:先判断表达式,后执行语句。
2019/6/19
C语言程序设计基础教程
4
§5.1 while语句
【例5-1】用while语句求1~100的累计和。
C语言程序设计基础教程
22
§5.4 循环嵌套
一个循环的循环体中有另一个循环称为循环嵌套。这 种嵌套过程可以有很多重。
一个循环外面仅包围一层循环称为二重循环;一个循 环外面包围两层循环称为三重循环;
一个循环外面包围多层循环称为多重循环。 循环嵌套的层数理论上无限制。
2019/6/19
C语言程序设计基础教程
循环嵌套执行时,先由外层循环进入内层循环,并 在内层循环终止之后接着执行外层循环,再由外层循环 进入内层循环。当外层循环全部终止时,程序结束。
2019/6/19
C语言程序设计基础教程
24
§5.4 循环嵌套
【例5-11】打印九九乘法口诀表。
#include"stdio.h"
main() {
int i,j; for(i=1;i<=9;i++) {
环控制变量的值,否则极易构成死循环。
(6) 按照语法规则,在do和while之间的循环体只能是一条
可执行语句。若循环体内需要多个语句,应该用花括号
括起来,组成复合语句。
2019/6/19
C语言程序设计基础教程
11
§5.2 do…while语句
【例5-4】将输入的一串字符显示在屏幕上,遇到空格时 停止。
23
§5.4 循环嵌套
在使用循环嵌套时应注意以下几点:
(1) 在嵌套的各层循环中,应使用复合语句(即用一对花括 号将循环体语句括起来),以保证逻辑上的正确性;
(2) 内层和外层循环控制变量不应同名,以免造成混乱;
(3) 嵌套循环最好采用右缩进格式书写,以保证层次的清晰 性;
(4) 循环嵌套不能交叉,即在一个循环体内必须完整地包含 另一个循环。
(1) while循环结构的特点是“先判断,后执行”。如果表 达式的值一开始为“假”,则循环体一次也不执行。
(2) while语句中的表达式一般是关系表达式或逻辑表达式 ,只要表达式的值为真(非0)即可继续循环。
(3) 为使循环能够正确开始运行,需要对循环控制变量初 始化。
(4) 循环体中,如果包含一个以上的语句,则应用花括号 括起来,构成复合语句,否则while语句的范围只到 while后面第1个分号处。
相关文档
最新文档