第5章循环结构(2)

合集下载

计算机VB学习第5章-23页文档资料

计算机VB学习第5章-23页文档资料
End Sub
上一页 下一页
第7页
返回本章首页
练习1:写出下面程序的运行结果
Private Sub Form_Click()
Dim a As Integer, i As Integer, j As Integer
a=0
For i = 1 To 5
For j = -2 To 2
a=a+i+j Next j Print a; Next i Print Print i, j, a End Sub
MsgBox "数据溢出,请重新输入",
vbOKCancel + vbInformation, “数据错误” 上一页
Text1.Text = "" Else
第5页
下一页 返回本章首页
n = CLng(Text1.Text)
k =Int(Sqr(n) ) m = 0 ‘ m是一个标记 :1—否,0—是 For i=2 To k
循环体 条件 True False
Do While <条件> …… [Exit Do] ……
Loop
循环体 条件 False True
第12页
Do Until <条件>

[Exit Do ]

上一页
Loop
下一页
返回本章首页
5.3 Do 循环------- 直到型循环
Do … [Exit Do] …
If n Mod k = 0 Then m = 1 Next i
If m = 0 Then Label2.Caption = “是一个素数”
Else Label2.Caption = “不是一个素数”

[工学]第05章 循环结构程序设计 (2)

[工学]第05章 循环结构程序设计 (2)
T
22
i=i+c
2019/2/17
例:#include<stdio.h> 例:#include<stdio.h> main( ) main( ) { int i=0; { int i=0; for(;i<10;i++) for(i=0;i<10;i++) putchar(‘a’+i); putchar(‘a’+i); } } 运行结果:abcdefghij
2019/2/17
21
(7)表达式2一般是关系表达式(如 for语句说明4 i<=100)或逻辑 表达式(如a<b&&x<y),但也可以是数值表达式 或字符表达式,只要其值为非零,就执行循环体。分 析下面两个例子: ①for ( i=0;(c=getchar( ))!=‘\n’;i+ =c); i=0 此 for语句的执行过程见图 ,它的作 用是不断输入字符,将它们的ASCII 取一个字 码相加,直到输入一个“换行”符为 符=>c 止。 F ② for( ;(c=getchar( ))!=‘ \ n’;) C≠换行符 printf(“%c”,c);
15
思考:该程序是什么功能?
2019/2/17
5.3 for语句
for循环语句是C语言中功能最强的循环语句,它有
多个变化形式,并且可以很方便的代替其它的循环语
16
句。 for语句的一般形式
for(表达式1;表达式2;表达式3)循环体语句
2019/2/17
17
for执行流程
①先计算初值表达式1,它主要 用于循环开始前设置变量初值; ②接着计算循环控制逻辑表达式 2,它控制循环条件,决定循环 次数; ③如果表达式2为真,则执行循 环体语句,否则结束for循环; ④求解表达式3,它主要是对循 环控制变量进行修改。 ⑤转步骤②执行。

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

第5章-循环结构程序设计PPT优秀课件
17
5.3.1 前测型Do…Loop循环语句
格式:
Do [While | Until <条件表达式>] <语句块> [Exit Do] <语句块>
Loop
18
5.3.1 前测型Do…Loop循环语句
前测型Do…Loop循环的流程图
Do While…Loop流程图
Do Until…Loop流程图
条件表达式 值为真?
格式:
Do <语句块> [Exit Do] <语句块>
Loop [While | Until <条件表达式>]
23
5.3.1 后测型Do…Loop循环语句
说明:
后测型Do…Loop循环语句与前测型Do…Loop循环语句的主 要区别在于:
后测型要先执行一次循环体,再判断条件;而前测型要 先判断条件,然后根据判断结果决定是否执行循环体。因此 对于后测型,不管条件是否满足,循环体至少有一次执行机 会。
16
5.3 Do…Loop循环语句
导入:
Do…Loop循环也属于条件型循环,即根据条件的 成立与否来决定是否执行循环。Do…Loop循环的应 用具有很强的灵活性,主要体现在:它既能指定循环 开始条件,又能指定循环结束条件;既能构成前测型 Do…Loop循环语句,又能构成后测型Do…Loop循 环语句。
25
5.3.1 后测型Do…Loop循环语句 【例5-10】将400~600间能够被3整除的数 输出(上机练习)
【例5-11】(略)
26
5.4 循环嵌套
介绍:
一个循环结构中又包含一个或多个循环结构被称为 循环嵌套,或称多重循环。 多重循环对嵌套的层数没有限制。有几层嵌套,就 称为几重循环,如二重循环、三重循环、四重循环 等。一般地,把嵌套在一个循环体内部的另一个循 环结构称为内循环;这样,嵌套了其他内循环部分 的循环结构就称为外循环。 为了使多重循环结构具有较好的可读性,通常用缩 进方式书写相应的源代码。

C语言第5章循环结构PPT课件

C语言第5章循环结构PPT课件
格式:while (条件1)
3. 用for 语句实现循环 4. 循环的嵌套
5. break语句和continue语句 6. 几种循环的比较 7. 程 序 举 例
第2页/共63页
一、循环概述
3
第3页/共63页
在很多实际问题中会遇到有规律性的重复运算,因 此在程序中就需要将某些语句重复执行。 • 一组被重复执行的语句称为循环体; • 每重复一次,都必须作出是继续还是停止循环的决 定,这个决定所依据的条件称为循环条件;
do {
......
for(;;) { ......
}while();
}
47
第47页/共63页
例7. 打印乘法“九九表”
1 2 3 4 56 7 89 11 22 4 33 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81
循环的概念 用while语句和do-while语句实现循环
用for 语句实现循环 循环的嵌套
break语句和continue语句 几种循环的比较 程序举例
第44页/共63页
循环的嵌环中还可以嵌套循环,这就是多重循环。
循环1
循环2
28
第28页/共63页
29
第29页/共63页
(2):从高位到低位求每一位。
30
第30页/共63页
(3):从低位到高位求每一位。
31
第31页/共63页
循环结构程序设计
1. 循环的概念 2. 用while语句和do-while语句实现循环

C语言程序设计:第5章 循环结构

C语言程序设计:第5章 循环结构
执行过程: 先执行循环体语句,再检查 循环条件表达式的值是否为真, 如果为真则继续执行循环体语句, 否则结束循环。
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;

5循环结构及其应用

5循环结构及其应用

5.2 实现循环结构的语句
do-while语句的执行过程是: 首先执行一次循环体语句,然后计算表达式(循环条件)的值,若结 果为“真”(非零),返回执行循环体语句,重复上述过程,直到表 达式的值为“假”(零)时结束循环,流程控制转到while语句的下 一语句。 do-while语句执行流程如图5-3所示。
执行程序后得到的输出结果为: 程序分析: 从本例可以看到,循环就是重复执行某些操作,本例用while语句来 实现这一循环过程,其中条件i<=30成立与否,决定着循环是否继续 进行,因此称之为循环条件,程序中被重复执行的语句称为循环体语 句,比如语句{ printf(“*”);i++; }。图5-1是本例的循环结构执行流程。 循环结构是程序的第三种基本结构。用循环结构解决问题的关键就是 找出循环继续与否的条件和需要重复执行的操作即循环体语句。 程序设计中任何循环都必须是有条件或有限次的循环,一定要注意避 免循环一直进行无法正常结束的情况(即死循环)发生。
上一页
下一页
返 回
5.2 实现循环结构的语句
【例5-2】显示1~10的平方。 【编程思路】 (1)定义变量i,并赋初始值1,用i来表示底数和行数,让i在循环体 中递增加。 (2)循环结束条件为i<=10,即底数增加到10的时候进行最后一个循 环。 (3)循环体中使用printf函数输出平方数。 【程序代码】 #include "stdio.h" main( ) { int i=1; while (i<=10) /* 循环条件*/ 上一页 下一页 返 回
上一页
下一页
返 回
5.2 实现循环结构的语句
【例5-5】求n!,即求n的阶乘,n由键盘输入。 【编程思路】 求阶乘实际上是求累乘,即求1*2*3*……*n。累乘与累加除运算类型 不同外,其执行过程相同。 程序代码】 #include "stdio.h" main( ) { int i=1,n; long s=1; printf("please input n:"); scanf(“%d”,&n); 上一页 下一页 返 回

C语言程序设计:第5章-循环结构-课件教案

C语言程序设计:第5章-循环结构-课件教案

C语言程序设计课件教案第五章循环结构教学目的掌握循环结构中的while语句、dowhile语句、for语句的用法,掌握中断语句中break和continue语句的用法。

教学要求1.熟练掌握while语句、dowhile语句、for语句2.熟练掌握break语句、continue语句重点和难点1.while语句、dowhile语句、for语句的使用2.break语句、continue语句的使用教学支撑环境与教学资源:1.笔记本电脑2.VC20103.投影仪教学方法讲授法、练习法、讨论法授课课时6课时教学过程AM一、课程引入计算1+2+3+...+n有几种方法,需要多少步骤?、循环结构语句什么时候用到循环结构:处理重复的问题的时候。

循环结构的三大语句:while语句、dowhile语句、for语句。

1.while语句while(循环条件表达式)循环体语句;执行过程:只有循环条件表达式的值为真就执行循环体语句,先判断后执行。

1.输出1---n之间的数intmain(void){inti=1;intn=0;printf("请输入n的值:");scanf("%d",&n);//1015while(i<=n)15printf("%d\n",i);i++;}return0;}2.计算m+...+n 的值intmain(void){inti=1;intn=0;intm=0;intsum=0;printf("请依次输入m 和n 的值:");scanf("%d%d",&m,&n);//m+...n10while(m<=n){sum=sum+m ;m++;}printf("sum=%d\n",sum);return0;}2.do...while 语句do循环体语句;}while(循环条件表达式);执行过程:先执行循环体语句,再检查循环条件表达式的值是否为真,如果为真则继续执行循环体语句,否则结束循环。

第5章for循环程序设计(0909NITL)

第5章for循环程序设计(0909NITL)

ch5_5_4.c 14
例5.5 计算输入一行字符串的字符个数.
#include<stdio.h> int main( ) { int n=0;
char cha1; printf("输入一行字符串: \n");
for(; (cha1=getchar( )) !=‘\n’ ; n++) ;
printf("共有字符%d个.\n",n); return 0; }
ch5_5_5.c 15
对于for语句的进一步说明:
(1). 表达式1可以是设置变量初值的赋值表达式,也可是与 循环变量 无关的其它表达式.
如:
for(sum=0; i<100; i++) sum=sum+i;
(2). 表达式2一般是关系表达式或逻辑表达式,但也可以是 其它类型表达式,只要其值为非零,就执行循环体.
for(; i<=5; i++) {
do { i++; a++;
} while(i<3);
i++; }
printf(“a=%d,i=%d\n”,a,i);
}
21
例5.6: 打印一张九九乘法表.
#include<stdio.h>
int main() { int i,j;
外循环控制行数.
for(i=1; i<10; i++)
#include “stdio.h” main( )
①. 外层for循环执行二次. 每次外循环时,内循环要执行4次.
{ int i,j,x=0;
②. 每次内循环时,当j=1,或j=3时,

C语言课件第5章循环结构程序设计2

C语言课件第5章循环结构程序设计2
18
思考 1、如果去掉循环体 中的大括号会怎样? 2、在循环体中,使 循环条件趋向于不满 足(假)的语句是哪 条?
第5章
循环结构程序设计
举例
while和do-while循环的比较。
此程序的 功能?
#include <stdio.h> int main() { int i,sum=0; scanf("%d",&i); while(i<=10) { sum=sum+i; i++; } printf("sum=%d\n",sum); return 0; }
第5章
循环结构程序设计
举例
现有某班20名学生的C语言成绩,求该班学生的C语 言的平均成绩。即:输入20个学生的成绩,计算平 均值,输出平均值。
分析:定义变量表示学生的成绩、全班总和、平均成绩。 如果定义20个变量保存20 算法设计: 个成绩,程序中计算成绩 第一步:输入20个学生的成绩 总和会有什么问题? 第二步:计算成绩总和 (用累加求和的方法)
运行结果:凵2550
#include <stdio.h> int main() { int i=1, n; float fac=1; printf("请输入n:"); scanf ("%d",&n); while (i<=n) { fac=fac*i; i++; } printf("%.0f\n",fac); return 0; } 请输入n:5
分析
求1~100的累加和。
换一种思路:
sum=sum+n;
首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次 取1、2、……、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n;”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累 计和。

第5章 循环结构程序设计

第5章 循环结构程序设计

运行结果:
printf("%d\n",sum);
sum = 5050
}
while语句和用do-while语句的比较:
一般情况,用while循环语句和用do -while循环语句处理问 题时,若循环体部分一样,结果也一样。但是如果while循 环语句循环条件一开始为“假”,则循环结果不同。while 循环语句一次也不执行,而do -while循环语句不论条件是 否成立,先执行一次循环体语句。
循环变量不增值。无终止地执行循环体。
例5-7用for语句求1 + 2 + 3 + … + 100
#include <stdio.h> void main() {
int i,sum=0; /*将累加器sum初始化为0*/ for(i=1; i<=100; i++) sum += i;/*实现累加*/ printf("sum=%d\n",sum); } 程序运行的结果为: sum=5050 解析:先执行变量赋初值,然后判定循环继续条件, 如果为“真”,执行循环体语句,i 为运算项目和循 环变量,执行完一次,增加一次,最后累加和。
if(n%3!=0) /*循环体*/
printf("%5d",n);
}
§5.4 多重循环
• 当循环中的内嵌语句是循环语句时,称为循 环的嵌套使用。内嵌的循环中嵌套循环,称 为多重循环。
C语言程序设计技术基础
第5章 循环结构程序设计
第5章 循环结构程序设计
5.1 while 循环语句 5.2 do while循环语句 5.3 for循环语句 5.4 多重循环 5.5 break语句与continue语句 5.6 几种循环语句的比较 5.7 循环结构程序举例

第5章 基本的控制结构(循环)

第5章 基本的控制结构(循环)

结束
图5-7
“九九乘法表”运行结果
结束
循环嵌套要注意以下事项: (1)在多重循环中,各层循环的循环控制变 量不能同名。但并列循环的循环控制变量名
可以相同,也可以不同。
(2)外循环必须完全包含内循环,不能交叉。
结束
下面的循环代码正确吗? For I=1 To 100 For I=1 To 100 For J=1 To 10 For I=1 To 10 „„ „„
结束
5.3.5 循环的退出
在某些情况下,为了减少循环次数或便 于程序调试,可能需要提前强制退出循 环。VB为For„Next和Do„Loop循环语句 提供了相应的强制退出循环的语句。
结束
Exit For语句:
用于For„Next循环,在循环体中可以出 现一次或多次。当系统执行到该语句时, 就强制退出当前循环。
结束
格式1的两种形式: Do {while} <条件> [<循环体>] Loop Do
当条件为真时, 执行循环体语句
{until} <条件> 当条件为真时,终 [<循环体>] 止执行循环体语句 Loop 说明: 格式1是先判断条件是否为真,然后执行。
结束
F
条件是否为真?
T
条件是否为真?
T
循环体
F
循环体
图2-3
Do While „Loop执行流程
图2-4
Do
Until „Loop执行流程
结束
格式2的两种形式: Do [<循环体>] Loop {while} <条件> Do
[<循环体>] Loop {until} <条件> 说明: 格式2是先执行循环体语句,然后判断条件。

循环结构程序设计

循环结构程序设计

第5章 循环结构程序设计
5.1 循环语句 5.1.2 while语句 while语句用来实现“当型”循环结构。 while语句的一般形式如下: while(表达式) 语句 /*循环体*/ 功能:当表达式的值为真时,执行 while语句中的循环体。
表达式 真

语句
第5章 循环结构程序设计
5.1 循环语句 5.1.2 while语句 while语句用来实现“当型”循环结构。 while语句的一般形式如下: while(表达式) 语句 /*循环体*/ 功能:当表达式的值为真时,执行 while语句中的循环体。
例5.6 判断一个数m是否是素数。
开始 输入m
i=2
i<=m-1 假 真 m%i==0 真 假 i=i+1 真 假
#include <stdio.h> main() { int m,i; scanf("%d",&m); for(i=2;i<=m-1;i++) if(m%i==0) break; if(i<=m-1) printf("%d不是素数",m); else printf("%d是素数",m); }
第5章 循环结构程序设计
5.2 多重循环 在循环体语句中又包含有另一个完整的循环结构的 形式,称为循环的嵌套(又称双重循环)。如果内循环 体中又有嵌套的循环语句,则构成多重循环。 嵌套在循环体内的循环体称为内循环,外面的循环称为 外循环。 while、do…while、for三种循环都可以互相嵌套。
a=1
a<=9 真 b=1
假 b<=9 真 输出a×b=c b=b+1 a=a+1

C语言程序设计教程(第4版)_第5章_循环结构

C语言程序设计教程(第4版)_第5章_循环结构

5.1 for语句
程序流程图: 程序:example5_2.c 思考: ①该算法的缺点; ②设计更好的算法。 ③假如输入的数可以为任意整数, 如果a≤b,计算 i ; 如果a>b,则计算 i 。 请设计算法并编写程序验证。
i b ia ia i b
5.1 for语句
例3:编写程序,从键盘输入m和n的值,用符号“*”在屏幕 上打印出如下所示具有m行n列的矩形图案。 ******* ******* ******* ******* ******* ******* ******* ******* 分析: ①图案有规律,共有m行,每行有n个*号。 ②可采用循环嵌套的方式: 第1层(外层)控制行数,用i来表示,输出m行“*” ; 第2层(内层)控制列数,用j来表示,输出n列“*” 。
100
5.1 for语句
for语句所具有的特性。 1.<初始表达式>可以省略,但须保留分号(;),同时在for之 前必须给循环控制变量赋值,形式为: <初始表达式>; for(;<条件表达式>;<循环表达式>) <循环体语句> 2.<条件表达式>一般不可省略,否则为无限循环。 例如: for(i=1;; i++) sum =sum+i; 相当于条件总为真,程序会一直不停地执行直到“数据溢出”。
5.2 while语句
例7:编写程序,统计从键盘输入的字 符个数(回车换行符也是一个字符) ,当遇到结束标志时程序结束。 分析:关键是循环计数。
开始 count=0
(ch=getchar())!=EOF
F
设置一个累加器count(初值为0),
每次从键盘输入一个字符,只要该字 符的值不等于结束标志,累加器的值 就增1:count=count+1; 算法流程图如图所示。 程序: example5_7.c

C言语课件-第5章 循环结构程序设计

C言语课件-第5章 循环结构程序设计
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 循环应用的场景举例
循环结构常用于处理数组、列表、文件等需要重复操作的情况。

第五章 循环结构

第五章 循环结构
2018/Байду номын сангаас1/19
甘肃联合大学 数字媒体学院 兰州文理学院 电信学院 曹晓丽 曹晓丽
第九章 数组 迄今为止,我们所接触的数据都属于 基本类型,如整型、实型、字符型、指针 型等,他们的特点是一个数据即为一个整 体,不能再分解。C语言还允许使用构造 类型的数据,构造类型的数据是由基本类 型数据按一定规律组合而成的,它们是数 组、结构体、共用体、枚举等类型。数组 是一种最简单的构造类型。
2018/11/19
兰州文理学院 数字媒体学院 曹晓丽
第一节 一维数组的定义和数组元素的引用
for(i=0;i<M;i++) {printf("%4d",s[i]); if((i+1)%10==0) printf("\n"); } printf("\nInvert Output:\n"); for(i=M-1;i>=0;i--) printf((i%10==0)?“%4d\n”:“%4d”,a[i]); printf("\n"); }
a[0] a[1] a[2] a[3] a[4] a[5] a[6]
2018/11/19 兰州文理学院 数字媒体学院 曹晓丽
a[7]
第一节 一维数组的定义和数组元素的引用 2.说明:
①所赋初值放在赋值号后面的一对花括号中,初 值间用逗号隔开, 初值的数据类型应该和数组的 类型一致,赋值顺序是按照数组元素的存储先 后顺序(既从下标为0的元素开始)逐一赋值 (即不能跳过某个元素而给其后的元素赋初 值)。 int a[8]={0,1,2,3,4,5,6,7};
2018/11/19 兰州文理学院 数字媒体学院 曹晓丽

《C语言程序设计》课件 《C语言程序设计》课件 第5章-循环结构程序设计

《C语言程序设计》课件 《C语言程序设计》课件 第5章-循环结构程序设计

Page 28
参考代码
#include<stdio.h> void main() {
char ch; int char_num=0,int_num=0,other_num=0; while((ch=getchar())!=‘\n’) //回车键结束输入 {
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') char_num++;
printf("************\n ");
printf("************\n ");
printf("************\n ");
printf("************\n "); printf("************\n "); 等价 for(int i=1;i<=8;i++)
{ s=s+i;
i++; //表达式3移至循环体末尾
}
printf("s=%d",s);
}
<<C语言程序设计>>
Page 19
随堂练习
例 编程计算n的阶乘。
n!=1 2 3 ……〔n-1〕 n
思路:
类似于累加求和,每一次循环乘上一个数字,求和 将和初始化为0,这里应把积初始化为?
<<C语言程序设计>>
#include "stdio.h" void main( ) { int i,sum=0;
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
授课班级:测控本101/电子本101、供电专101/102、集控专101/102
第5章循环结构程序设计
5.4 break语句、continue语句和goto语句 5.5 循环的嵌套 5.6 程序举例
2013-8-18
第8次课
教学目的: 1. 掌握break与continue语句的使用; 2. 简单了解goto语句; 3. 熟练掌握循环的嵌套; 重点: 1. break和continue语句的使用特点及区别; 2. 循环嵌套的执行方法及程序的编写。 难点: 1. 循环嵌套程序的编写 教具: ppt课件、屏幕投影 教学过程: 问题引入、内容讲解、提问、小结、作业
•算法: 让m被2到
m
之间的所有整数除。
如果m被2到 m 之中的某一个数整除,m不是素数, 则提前结束循环。
若m没有被2到 m之间的任何一个数整除,那么m是 素数,循环正常结束。
[例5.8]判断变量m是否是素数。
#include "math.h" main() { int i,m,k; scanf(“%d”,&m); k=sqrt(m); for(i=2;i<=k;i++) if(m%i= =0) break; if(i>k) printf("%d is a prime number\n",m); else printf("%d is not a prime number\n",m); }
例5.6 编写程序输出如下图形。 #include "stdio.h" main() { int i,j; for(i=1;i<=5;i++) { for(j=1;j<=i;j++) putchar('*'); putchar('\n'); } }
* ** *** **** *****
程序举例
[例5.8]判断变量m是否是素数。

作业: P75 三、编程题7
5.4.2 continue语句
格式: continue; o功能: 结束本次循环,即跳过循环体中下面尚未执 行的语句,继续进行下一次循环。 o说明: continue语句只能出现在循环体语句中,不能用在 其他的地方。
o
continue语句只结束本次循环,而break语句则是 结束循环,不再进行条件判断。
例:使用break语句求1+2+3+…+100
在本程序执行中,当i>100时,强行终止for循环(从循环体中 跳出),继续执行for语句的下一条语句,即输出s的值。
main() { int i=1,s=0; for(;;) {s=s+i; i++; if(i>100) break; /*如果i>100,退出循环*/ } printf("s=%d\n",s); }

带标号语句的形式是:
标号:语句 即标号和语句之间用冒号隔开。
例:用goto语句来求s=1+2+3+…+100的值。 main()
{
int i=1,s=0;
loop: s=s+i;
பைடு நூலகம்
i++;
if(i<=100) goto loop; printf("s=%d\n",s); }

说明:
goto语句只能使流程在函数内转移,不得转移到该 函数外。 需要从多重嵌套的结构中转移到最外层时,可以使 用goto语句。 大量使用goto语句导致程序结构不清晰,程序的可 读性变差,因此要尽量避免使用goto语句。
5.5 循环的嵌套
一个循环体内又包含另一个完整的循环结构,称为循环 的嵌套。
三种循环:while、do-while和for循环可以互相嵌套。
例:(1)while() {… while() {…} } (2) for(;;) {… while() {…} }
例5.6 编写程序输出如下图形。
算法分析:

5.4 break 语句和 continue 语句
5.4.1

break 语句
格式:break;
功能:该语句可以使程序运行时中途退出一个循环体
说明:break语句是限定转向语句,它使流程跳出所 在的结构,把流程转向所在结构之后。由break语句退 出循环体,从而结束循环过程。
(1) break语句不能用于循环语句和switch语句之外的 任何其他语句。 (2)在多重循环的情况下,使用break语句时,仅仅退 出包含break语句的那层循环体,即break语句不能使 程序控制退出一层以上的循环。
例5.5:求100到200中不能被3整除的数并输出。 main() { int n; for(n=100;n<=200;n++) { if(n%3= =0) continue; printf(“%d”,n); } }
5.4.3 goto语句
goto语句被称为无条件转移语句,它的一般形式为:
goto 标号; 执行goto语句使程序流程转移到相应标号所在的语句, 并从该语句继续执行。语句标号用标识符表示。
* 1 用循环变量i(1<=i<=5)控制图形的行数。 ** for(i=1;i<=5;i++) *** 输出第i行 **** 2 每行上*的个数随着控制变量值的变化而变化 ***** i=1时,执行1次 putchar('*'); i=2时,执行2次 putchar('*'); …… i=5时,执行5次 putchar('*'); 3用循环控制变量j(1<=j<=i)来控制图形中每行的个数,则内 循环语句为 for(j=1;j<=i;j++) putchar('*');
main() {int i; for(i=1;i<6;i++) { if(i%2) putchar('a'); else continue; putchar('b'); } putchar('!');}
结果: ababab!
小结
1. 2. 3.
break和continue语句的特点及使用; 循环嵌套的执行方法及程序的编写; goto语句的定义方法及执行过程。
例:计算r=1到r=10的圆面积,直到面积s>100为止, 当s>100时,执行break语句,提前终止循环,即不再 继续执行其他语句。
#define PI 3.1415926 main() { int r; float s; for(r=1;r<=10;r++) {s=PI*r*r; if(s>100) break;} printf("s=%f",s); }
练习
1.执行下列的程序段后,正确的结果是 main() {int i=0,j,k=0,m=0; for( ;i<2 ;i++) { for(j=0;j<3;j++) k++; k-=j; } m=i+j; printf("m=%d,k=%d",m,k ); }
结果: m=5,k=0
2.执行下列的程序段后,正确的结果是
相关文档
最新文档