第5章_循环结构程序设计《C语言程序设计(第三版)》-电子教案

合集下载

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

C语言第5章-循环结构程序设计PPT课件
sum=sum+i i++
当i<=10 (直到i>10) 输出sum
#include "stdio.h" int main() {
int i,sum; i=1; sum=0; do { sum=sum+i; i++; }while(i<=10);
至少执 行一次
循环体语句
真 表达式 假
说明
printf("sum=%5d\n",sum); return 0;
7
举例
例5.2 设s=1×2×3×……×n,求s不大于400000时 最大的n。
#include <stdio.h>
int main( )
{ int n=1; long int s=1;
前n项的乘积
P81
while(s<=400000)
{
n=n+1;
s=s*n;
}
printf("不大于400000时的最大n为:%d\ns值为:%ld\n",n-1,s/n);
输入:1 输出:sum=55 输入:11 输出:sum=0
sum=55 sum=11
什么情况下两 者结果相同?
11
§5.3 for语句
P87
格式 for (表达式1;表达式2;表达式3) 语句
for (循环变量赋初值;循环条件;循环变量增值) 语句
执行 过程
求解表达式1
假 表达式2
真 循环体语句
求解表达式3
一、实现循环结构的控制语句 二、循环嵌套 三、循环结构程序举例
1
• while语句 • do-while语句 • for语句 • break、continue语句 • 几种循环的比较

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

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

if(n % i==0) flag=1;
else i=i+1;
if(!flag)
printf("%d is a prime
number.\n",n);
else
printf("%d is not a prime
number.\n",n);
}
12
返回本章首页
5.2 用while语句实现循环结构程序设计
4
返回本章首页
5.2 用while语句实现循环结构程序设计
2.While语句的功能
循环初始化部分
不成立 判断表达式
成立 循环体语句
循环初始化部分 当表达式为真时
循环体语句 循环修改部分
循环修改部分
5
返回本章首页
5.2 用while语句实现循环结构程序设计
【例5_1】用while语句求p=5!
p=1 i=1 当 i<=5 时
10
返回本章首页
5.2 用while语句实现循环结构程序设计
【例5_3】给一个正整数n(n≥2),用while循环结构 判断它是否素数。
输入 n
k= n ,i=2,flag=0
当 i≤k 和 flag=0 时
n 被 i整除


flag=1
i=i+1
flag=0


输出 n 是素数 输出 n 不是素数
p=p*i; i++; 输出 p
6
返回本章首页
5.2 用while语句实现循环结构程序设计
【例5_1】用while语句求p=5!
#include<stdio.h>
int main()

C语言程序设计-电子教案- 单元5 循环结构

C语言程序设计-电子教案-  单元5 循环结构
单元5 循环结构
内容摘要
while语句 do-while语句 for语句的应用 循环结构的嵌套 break语句在循环结构中的用法
学习目标
熟练掌握while语句、do-while语句和for语句的 基本格式 理解while语句、do-while语句和for语句的执行 过程 掌握循环嵌套的应用 掌握循环结构的常用算法
任务1 while语句
任务1:任务引导
循环结构是结构化程序设计的三种基本结构之一,它
们分别是while语句、do-while语句及for语句。这三种 循环语句主要用于完成程序中需要重复执行的操作。 例如:求数的阶乘、累加求和、求x的n次方等问题。
任务1:知识点介绍
1、while语句的形式 while语句是实现“当型”结构循环的语句,其一般形

一次指定的循环体语句,然后判断表达式的值。其流程图如图 5-3所示。具体执行过程如下: 执行do后面的循环体语句。 计算while后面括号中的表达式的值,当表达式的值为非0时, 返回执行过程(1);如此反复,直到表达式的值等于0时,退 出do-while循环。 说明:(1)do-while语句的特点是:先执行语句,后判断表达 式的值。 因此,do-while循环至少要执行一次循环语句。 (2)如果do-while语句的循环体部分是多个语句组成,则必须 用左右大括号括起来,使其形成复合语句。 (3)while圆括号后面有一个分号“;”,书写时不要忘记。
任务2 do-while语句
任务2:任务引导
前面我们用while语句求2+4+6+…+100的值,学会 了while语句的使用方法。除了while语句以外, C语言还提供了do-while语句来实现循环结构。对同一个问

第5章 循环结构程序设计《C语言程序设计(第三版)》-电子教案

第5章 循环结构程序设计《C语言程序设计(第三版)》-电子教案
21世纪高等学校精品规划教材
第5章 循环结构程序设计




掌握循环结构的基本特点 掌握3种循环语句:for语句、while语句和dowhile语句 学会利用for语句、while语句和do-while语句 设计简单的循环程序 了解goto语句构成的循环
5.1 循环的基本概念
【问题】如何计算1+2+3+4+…+100
5.1.2 循环结构语句

for 循环 while 循环 do-while 循环
5.2 while循环


while循环通过while语句实现。while循环又 称为“当型”循环。 一般格式为:

while (表达式) 语句 其中,括号后面的语句可以是一条语句,也可以是 复合语句。它们都称为循环体。
s = s + i; /* 投入i 枚硬币到s中*/ i = i + 1; /* 计算下次投币数 */
5.1.1 方法的探索
s=0; /* 盒子开始为空*/ i=1; /* 第1次投币*/ while(i<=100) /* 100次投币*/ { s=s+i; /* 投入i 枚硬币到s中*/ i=i+1; /* 计算下次投币数 */ }
do { 语句 } while(表达式);

do-while语句的执行过程为: 先执行循环体语句再判断表达式的值。若值 为0,则结束循环,退出do-while语句;若值 为非0,则继续执行循环体。
5.3 do-while循环
流程图
【例5-3】计算s=1+2+3+…+100。
#include <stdio.h> void main() { int i,s; i=1;s=0; do { s=s+i; i=i+1; } while(i<=100); printf("s=%d\n",s); }

C电子教案第5章

C电子教案第5章

第5章循环结构程序设计5.1 概述在C语言中,构成循环的语句有4种:1 用goto和if语句;2 用while语句;3 用do-while语句;4 用for语句。

5.2 goto语句以及用goto语句构成循环格式:goto 语句标号;功能:无条件转到语句标号指定的语句中去执行。

注意:(1)语句标号应是合法的标识符,可放在任何语句的前面。

(2)用goto语句构成循环不是一种很好的方法。

例5.1用if语句和goto语句构成循环,求∑100n=1n。

此问题的算法是比较简单的,可以直接写出程序:main( ){int i,sum=0;i=1;looP: if(i<=100){ sum=sum+i;i++;goto loop;}printf("%d",sum);}运行结果如下:5050这里用的是“当型”循环结构,当满足“i<=100”时执行花括弧内的循环体。

请学生自己画出流程图。

5.3 while语句格式:while (表达式)循环体;功能:当表达式为真时执行循环体的语句,直到表达式为假时退出循环。

例5.2求∑100n=1n。

用传统流程图和N S结构流程图表示算法,见图5.2(a)和图5.2(b)。

根据流程图写出程序:main(){int i,sum=0;i=1;while (i<=100){sum=sum+i;i++;}printf("%d",sum);}需要注意:(1) 循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现。

如果不加花括弧,则while语句的范围只到while后面第一个分号处。

例如,本例中while语句中如无花括弧,则while语句范围只到“sum=sum+i;”。

(2) 在循环体中应有使循环趋向于结束的语句。

例如,在本例中循环结束的条件是“i>100”,因此在循环体中应该有使i增值以最终导致i>100的语句,今用“i++;”语句来达到此目的。

第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
循环初始条件

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(循环条件表达式);执行过程:先执行循环体语句,再检查循环条件表达式的值是否为真,如果为真则继续执行循环体语句,否则结束循环。

《C语言程序设计(第3版)》电子教案 项目三 设计顺序结构程序

《C语言程序设计(第3版)》电子教案 项目三 设计顺序结构程序
下一页 返回
任务一 了解程序算法
二、了解算法的特征
通常,一个算法必须具备以下五个基本特征: 1.有穷性。一个算法必须在它所涉及的每一种情形下,都能在执行有
限次的操作之后结束; 2.确定性。算法的每一步,其顺序和内容都必须严格定义,而不能有
任何的歧义; 3.有零个或多个输入。输入是算法实施前需要从外界取得的信息,有
goto, return
下一页 返回
任务二 掌握格式化输出/输入
2. 函数调用语句 函数调用语句由一次函数调用加一个分号(语句结束标志)构
成。例如: printf(“This is a C Program.”); 3.表达式语句
表达式语句由表达式后加一个分号构成。 表达式能构成语句,是C语言的一大特色,最典型的表达式语 句是在赋值表达式后加一个分号构成的赋值语句。例如, “num=5”是一个赋值表达式,而“num=5;”却是一个赋值语句。
下一页 返回
任务二 掌握格式化输出/输入
(一)printf()函数的一般格式 printf("格式字符串", [输出项表]); 其中: “格式化字符串”由控制输出格式的字符组成的字符
串。输出表达式表是用逗号分隔的若干个表达式。C语言系统将按 照自右向左的顺序,依次计算“输出表达式表”中诸表达式的值, 然后按照“格式化字符串”中规定的格式输出到显示器上显示。 函数返回值为返回输出数据的个数。
上一页 下一页 返回
任务二 掌握格式化输出/输入
(二)printf()函数格式字符 格式指示符的一般形式为:%[修饰符]格式字符
其中,修饰符与格式字符的具体用法如下: 1.格式字符
printf函数中常用的格式字符如表3-1所示。 2.长度修饰符

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

c语言第5章循环结构程序设计课件
6
第五章 循环结构程序设计
典型例题(例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( ) {…}

Visual Basic程序设计(第3版)-电子教案第5章

Visual Basic程序设计(第3版)-电子教案第5章

While p < 1000 I = I + 1 p = p * I
p = p / I n = I - 1 Print "N="; n, n; "!="; p End Sub
【例5.5】假设我国现有人口12亿,若 年增长率为1.5%,试计算多少年后我国人 口增加到或超过20亿。 人口计算公式为:p=y(1+r)n y为人口初值,r为年增长率,n为年数。
循环次数=Int((终值-初值)/步长) +1
(2)循环控制变量通常用整型数, 也可以用单精度数或双精度数。值得 注意的是,无论初值、终值和步长值 是什么数值类型,最后都要转换成循 环控制变量的类型。
【例5.1】求N!(N为自然数)。 分析:由阶乘的定义,我们可以得出N! =1*2*„*(N-2)*(N-1)*N=(N-1)!*N,也就 是说,一个自然数的阶乘,等于该自然数 与前一个自然数阶乘的乘积,
5.4 Do循环
与前面介绍的While循环相比,Do循环 具有更强的灵活性,它可以根据需要决定 是条件满足时执行循环体,还是一直执行 循环体直到条件满足。Do循环有两种语法 形式。
格式1: Do
{while|until} <条件> [<循环体>]
Loop 说明: 格式1是先判断,后执行。其执行过程 如图5-8、5-9所示。
我们前面学过的For循环、While循环、 Do循环都可以互相嵌套。 二重循环的执行过程是外循环执行一 次,内循环执行一遍,在内循环结束后, 再进行下一次外循环,如此反复,直到外 循环结束。
【例5.8】打印九九乘法表。 分析:打印九九乘法表,只要利用循 环变量作为乘数和被乘数就可以方便的解 决。

C语言程序设计-电子教案 第5章 循环结构程序设计

C语言程序设计-电子教案 第5章  循环结构程序设计

(2)在for语句中,表达式1和表达式3都可以是一项或是多项, 多于一项时,各项之间用“,”分隔,形成逗号表达式。
第5章 循环结构程序设计
5.1 for 语句
5.1.3 for语句的用法 【例5-1】编程计算s=1+2+3+...+100,用for语句实现。 依照此程序,请读者自行完成下列编程题: ① 计算:s=1+3+5+...+99 ② 计算:s=1+2+3+...+n
第5章 循环结构程序设计
5.2 while语句
【例5-6】将输入的正文复制到输出,每次一个字符。 分析:以 E0F 为结束标志的字符流称为一个正文,可以包含空白
字符,例如空格' '和换行字符'\n'。键入 Ctrl+z则 getchar 函数返 回文件结束字符 EOF。 程序中:c=getchar(); while(c!=EOF) { putchar(c); c=getchar(); } 可简化为:while((c=getchar())!=EOF)
for语句的执行过程流程图如图5-1所示。
第5章 循环结构程序设计
5.1 for 语句第5章 循环结构程序计5.1 for 语句
说明: (1)for语句的使用非常灵活,它的三个表达式可以省略1个或2 个,也可以3个都省略,但间隔符“;”必须保留。
例如:下列程序段把i=1提到for语句之前,省略了表达式1。 int i=1;s=0; for( ;i<=100 ;i++) s=s+I; 例如:下列两个程序段均为死循环,因为表达式2的值永远为真。
第5章 循环结构程序设计

C语言电子教案第5章 循环结构程序设计

C语言电子教案第5章 循环结构程序设计

5.3 for循环
程序的运行情况如下: input numbers,last one is 0:3↙ 6↙ 5↙ 2↙ 9↙ 7↙ 0↙ max=9
例3
main ( ) {int a=10,b=5,c=5,d=5; int i=0,j=0,k=0; for (;a>b;++b)i++; while (a>++c)j++; do k++;while(a>d++); printf("%d,%d,%d\n",i,j,k); } 运行结果:5,4,6
main( ) { int i,sum=0; scanf("%d",&i); do { sum+=6; i++; }while(i<=3); printf("The sum is %d,i=%d",sum,i); }
main( ) { int i,sum=0; scanf("%d",&i); while(i<=3) {sum+=6; i++; } printf("The sum is %d,i=%d",sum,i); }
/*给变量i、s赋初值*/ /*循环继续的条件*/ /*进行累乘求积*/ /*乘数增值*/ /*输出计算的结果*/
5.1 while循环
使用while循环结构应注意以下几点: while循环结构的特点是“先判断,后执行”。如果表达式 的值一开始就为“假”,则循环体一次也不执行。 循环体中,如果包含一个以上的语句,则应用花括号括起 来,以复合语句的形式出现。 循环体内一定要有改变循环继续条件的语句,使得循环趋 向于结束,否则循环将无休止的进行下去,即形成“死循 环”。为使循环能够正确开始运行,还要做好循环前的准 备工作, 【例5.2】从键盘上输入30个学生的成绩,对其进行处理:如 果成绩及格,则输出“Passed”;否则输出“Failed”。

精品课程《C语言程序》电子教案(全)

精品课程《C语言程序》电子教案(全)

精品课程《C语言程序设计》电子教案(一)一、课程简介1.1 课程背景1.2 课程目标(1)掌握C语言的基本语法和数据类型;(2)熟悉运算符、表达式和语句的结构;(3)掌握函数的定义和调用;(4)了解常用的库函数和头文件;(5)学会使用C语言进行程序设计和调试;(6)培养编程思维和解决问题的能力。

二、教学内容2.1 课程安排本课程共分为五个部分,具体安排如下:第一部分:C语言基础知识(2周)第1周:C语言概述、变量和数据类型第2周:运算符、表达式和语句第二部分:程序控制结构(3周)第3周:顺序结构第4周:选择结构第5周:循环结构第三部分:函数与数组(3周)第6周:函数的定义和调用第7周:数组和字符串第8周:指针第四部分:指针与引用(2周)第9周:指针的应用第10周:引用第五部分:综合练习与课程设计(2周)第11周:综合练习第12周:课程设计2.2 教学方法采用讲授、实验、讨论相结合的教学方法,通过案例分析和编程实践,使学生掌握C语言的基本知识和编程技巧。

三、教学资源3.1 教材《C语言程序设计》,作者:谭浩强3.2 实验环境配置有C语言编译器的计算机实验室,如:Visual Studio、Code::Blocks等。

3.3 网络资源精品课程网站:提供课程讲义、实验指导、习题库、在线测试等功能。

四、课程考核4.1 考核方式课程考核分为过程考核和期末考试两部分,其中过程考核占60%,期末考试占40%。

4.2 过程考核包括课堂表现、实验报告、课后作业和在线测试等。

4.3 期末考试采取闭卷考试的方式,试题包括选择题、填空题、简答题和编程题等。

五、教学反馈5.1 学生反馈学生可通过课程网站、邮件等方式向教师反馈学习过程中遇到的问题和建议。

5.2 教师反馈教师根据学生的课堂表现、实验报告和作业等情况,及时给予反馈和指导。

精品课程《C语言程序设计》电子教案(二)六、第一部分:C语言基础知识6.1 第1周:C语言概述、变量和数据类型教学目标:了解C语言的发展历程、特点和应用领域;掌握基本数据类型、变量定义和初始化。

精品课件-C程序设计(第三版)(荣政)-第5章

精品课件-C程序设计(第三版)(荣政)-第5章

第五章 循环结构的C程序设计
(2) 循环体由多个语句组成时,必须用左、右花括号括 起来,使其构成一复合语句。
如下例: void main() {
int i,sum; i=5;sum=0;
while (i>0) { sum=sum+i; i--; }
}
第五章 循环结构的C程序设计
若其中的循环体无{ },即循环语句写成: while (i>0) sum=sum+i; i--;
第五章 循环结构的C程序设计
运行结果: Input n:6 ↙ 12 34 2 11 9 5 ↙ sum is:73
第五章 循环结构的C程序设计
图 5.2 求n个数的和
第五章 循环结构的C程序设计
例 5.2 从键盘连续输入字符,直到输入“回车”符为止, 统计输入的字符个数。
分析:算法由图5.3所示的流程图描述。
#include <stdio.h> void main() {
int i,n,k,sum; i=1;sum=0; printf("Input n:"); scanf("%d",&n);
while(i<=n) { scanf("%d",&k); sum=sum+k; i++; }
printf("\nsum is:%d\n",sum); }
第五章 循环结构的C程序设计
(3) 若do-while语句的循环体部分由多个语句组成时,必 须用左、右花括号括起来,使其形成复合语句。例如:
do {
sum+=i; i--; } while(i>0); (4) C语言中的do-while语句是在表达式的值为“真”时 重复执行循环体的,这一点同别的语言中的类似语句有区别, 在程序设计中应引起注意。

C程序设计第三版教材PPT第5章讲稿

C程序设计第三版教材PPT第5章讲稿
例如,假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、 1、1,则求解表达式“(x=n1>n2)&&(y=n3>n4)”后,
x的值变为0,而y的值不变,仍等于1!
分析:闰年的条件是:(1)能被4整除,但不能被100整除的年 份都是闰年,如1996,2004年是闰年;(2)能被100整除, 将适又符的C合能提逻供这被辑的两4表0关个达0系整条式运除来件算的表的符示年年和一份份逻个是不辑复闰是运杂年闰算的。符年条如有。件效1!6的0结0,合20使0用0年,是可闰编年写出。合不
关系运算符都是双目运算符,其结合性均为左结合。 关系运算符的优先级低于算术运算符,高于赋值运算符。 在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=, ==和!=的优先级相同。
例如: c>a+b a>b==c a==b<c a=b>c
等效于c>(a+b) 等效于(a>b)==c 等效于a==(b<c ) 等效于a=(b>c )
5.1.1 关系运算符及其优先次序
在C语言中有以下关系运算符:
1) < 小于 2) <= 小于或等于 3) > 大于 4) >= 大于或等于 5) == 等于 6) != 不等于
优先级相同(高) 优先级相同(低)
注意:在C语言中, “等于”关系运算符 是双等号“= =”, 而不是单等号“= ” (赋值运算符)。
例如: if(a+b>c)
{s=0.2*(a+b); printf(“s=0.2*(a+b)=%f\n”,s); }
else { s=0.5*c;

c语言课件-第五章-循环结构程序设计

c语言课件-第五章-循环结构程序设计

5.5 for语句(当型循环)
例:读程序,判断程序的功能 #include<stdio.h> void main( ) {char c; for(;(c=getchar( ))!=‘\n’;) putchar(c); } 输入ok!<回车>,输出_______
读入一个字符,当它不是回车符就输出.
5.5 for语句(当型循环)
分析:用辗转相除法求最大公约数。
5.3 while语句(当型循环)
5.3 while语句(当型循环)
例:利用while语句计算1+1/2+1/4+1/6…+1/50.
解:观察数列1,1/2,1/4,1/6…,1/50。
分子全部为1,分母除第一项外,全部是偶数。 同样考虑用循环实现。
其中累加器用sum表示(初值设置为第一项1,以 后不累加第一项),循环控制用变量i(i:2-50)控 制,数列通项:1/i。
5.2 goto语句及用goto构成循环
一、goto语句 goto语句的一般形式:goto 语句标号
语句标号:用于定义程序中的某个位置 用标识符表示,不能只用数字
如:goto start(对) goto 20(错)
goto语句的功能是无条件地转到标号所指的语句。
因为滥用goto语句会破坏结构化,所以应该限制 使用goto语句。
i=1 for(; i<=3; )
{ s=s+k; i++; }
i=1 while (i<=3)
{ s=s+k; i++; }
5.5 for语句(当型循环)
(6)表达式2一般是关系表达式或逻辑表达式,但 也可以是数值表达式或字符表达式,只要其值不等于 0就执行循环体。

北京航空航天大学《C语言程序设计》课件-第五章循环结构程序设计

北京航空航天大学《C语言程序设计》课件-第五章循环结构程序设计

2023/4/2
5.3 do-while语句
15
语句一般格式
do
{语句组} while (表达式);
功能:
– 先执行内嵌语句(循环体),之后计算 表达式的值,不为0(逻辑真)时,再 执行循环体并判断条件,直到表达式的 值为 0 结束循环,转去执行while下面 的语句。
2023/4/2
do-while循环的算法
for(n=100;n<=200;n++) {
if (n%7!=0) continue;
printf("%6d",n); j++; if (j%10==0)
printf("\n"); } printf(" \n j=%d\n",j); }
29
2023/4/2
5.5.2 循环中break的应用
30
功能:
}
无循环体
} 循环体
2023/4/2
5.5 循环结构中的跳转语句
25
有如下三种语句实现跳转: – continue语句 – break语句 – goto语句
功能:在循环语句的循环体中使用,可 以进行循环的流程控制
2023/4/2
5.5.1 continue语句及应用
26
功能:
– 中断循环体的本次执行(即跳过循环体中尚未 执行的语句),立即开始执行下一次循环。
– 利用break语句能够强迫终止本层循环, 转到后续语句执行。
while语句
表达式? N
Y
… break;

do-while语句
… break;

表达式? N
Y

C语言程序设计-电子教案 第5章 循环结构

C语言程序设计-电子教案  第5章 循环结构

大学计算机基础
网络信息中心教研室
【例】 for(k=10; k<20; k++)
printf(″k=%d\n″, k); 表达式1为k=10, 表达式2为k<20, 表达式3为k++。
① 计算表达式1 , k得到初值10
② 计算表达式2, k<20为真, 执行第一次循环, 输出: k=10 ③ 计算表达式3, k的值变为11 ④ 计算表达式2, k<20为真, 执行第二次循环, 输出: k=11 …… 最后: ① k 的值变为19, 执行第20次循环, 输出: k=19 ② 计算表达式3, k 的值变为20 ③ 计算表达式2, k<20为假, 终止整个循环的执行, 退出循环。
大学计算机基础
5.2 do-while语句
一般形式:
执行流程:
初始化变量
do
循环体语句; while(表达式);
循环体语句 真(非0)
表达式成立
假(0)
大学计算机基础 网络信息中心教研室
5.2 do-while语句
do~while语句特点和说明:
特点:先执行循环体,
后判断循环条件是否成立。 说明: 1) 至少执行一次循环体; 2) 其他跟while语句相同
抽象:
for (i=1;i<=1000;i++) s=s+i*i;
大学计算机基础
网络信息中心教研室
循环结构程序设计要考虑两方面的问题: 循环条件:决定循环体执行的次数 (或退出循环条件)
常用关系表达式和逻辑表达式表示。
循环体:需要重复执行的工作。
循环体也可用break语句跳出循环,用continue语 句结束本次循环。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.5 循环嵌套
(1)while ()
{… le ()
{…
for (;;)
… }
(2)for (;;)
{ … for (;;) … }
(5)for (;;)
{ …
while (;;)
(3)do{
… do{ … }while (); … }while ();
… }
5.7 程序举例

【例5-8】计算s=1×2×3×4×…×8。
#include <stdio.h> void main() { int i; long s; for(i=1,s=1;i<=8;i++) s = s * i; printf("s=%ld\n",s); }
【例5-9】打印图形。
#include <stdio.h> void main() { int i,j; for (i=1;i<=5;i++) { for (j=1;j<=i;j++) printf("*"); printf("\n"); /* 每输出一行需要换行 */ } }
循环变量的功能

控制循环 作为循环体中算法的引用变量
for(i=0;i<100;i++) s=s+i; for(i=1,j=1;i<=100;i++) { s=s+j; j=j+1; } for(i=2,j=1;i<=200;i=i+2) { s=s+j; j=j+1; }
控 制 + 引 用
0+1+2+…+99
以上程序中j<=i-1也可以改成j<=i/2或j<=sqrt(i)。
判断方法与实现

7

i
2~6 7%2 == 0 ?否 7%3 == 0 ?否 7%4 == 0 ?否 7%5 == 0 ?否 7%6 == 0 ?否 7是素数
注意



①、②、③均省略,即: for (;;) ④; 相当于while (1) ④;。循环的所有控制和计算功能 都必须在循环体④中完成,这样的循环适合于随机 退出循环程序的情况。 表达式④也可以省略,但必须至少保留一个分号, 即: for (①;②;③) ; 一个分号即是一条空语句。 如果①、②、③、④均省略,即如以下形式: for (;;); 这将构成一个死循环。
注意


do-while循环和while循环可以完成相同的任务。例 如上面的程序都可以计算出1到100的数的和。 do-while循环的循环条件的判断在循环体的后面,所 以和while循环有区别,例如下面的两个程序:
int i=1;s=0; while(i<1) { s=s+i; i=i+1; } printf("s=%d\n",s); int i=1,s=0; do { s=s+i; i=i+1; } while(i<1); printf("s=%d\n",s);
5.4 for循环
流程图
【例5-4】计算s=1+2+3+…+100。
#include <stdio.h> void main() { int i,s; for(i=1,s=0;i<=100;i++) s = s + i; printf("s=%d\n",s); }
注意




for循环可以用以下while循环代替: ①; while (②) { ④; ③;} 表达式①可以是多个表达式构成的逗号表达式,例如 i=1,s=0;。 ①、②、③构成循环的控制部分,3个表达式之间用 分号分隔。 表达式①可以放在for循环的前面,但后面的分号不 能少,例如: ①;for(;②; ③)④;
5.6 break语句、continue语句和 goto语句

5.6.2 continue语句

与break语句退出循环不同的是,continue语句 只结束本次循环,接着进行下一次循环的判断,如 果满足循环条件,继续循环,否则退出循环。

5.6.3 goto语句 goto语句为无条件转向语句,形式为: goto 语句标号
【例5-5】计算 1+1.5+2.0+2.5+3.0+3.5+…+10。
#include <stdio.h> void main() { float i, s; /*i,s需要定义为float型 */ for(i=1,s=0;i<=10;i=i+0.5) s = s + i; printf("s=%f\n",s); }
【注意】

如果只有一个循环变量,而且循环变量每次有 固定的增加和减少,则循环的次数可以用以下 公式计算:

循环次数 = (终值-初值)/ 步长 + 1


步长为循环变量每次增加或减少的值,例如, 上例循环次数为:(100–1)/1 + 1,即100次。 步长可以为负数。
【例5-2】计算1到100之间所有3 的倍数的和。
for(i=0;i<100;i++) s=s+i+1;
控 制
1+2+3+…+100
for(i=1;i<=100;i++) s=s+i;
1+2+3+…+100
1+2+3+…+100
【例5-9】打印图形。

分析
for(i=1;i<=4;i++) /*控制输出4行*/ { for(j=1;j<=i-1;j++) printf("□"); /*输出i-1个空格*/ for(j=1;j<=2*i-1;j++) printf("*");/*输出2*i-1个星号*/ printf("\n"); /*输出一行后换行*/ }
【注意】


循环体包括一条或多条语句,多条语句必须用 一对花括号“{}”括起来。 合理的循环是有限次循环。如果循环不能退出, 则称为“死循环”,在程序设计中应该避免出 现。 控制循环执行的次数因素包括循环中的循环条 件、控制循环的主要变量的初值和终值以及每 次变化的幅度等。

例如,上例中i有效地控制了循环的运行,i从1 循环到100,每次加1,循环运行了100次,i也 可以称为循环变量。
变量跟踪表
5.6 break语句、continue语句和 goto语句

5.6.1 break语句


switch结构中可以用break语句跳出结构去执 行switch语句的下一条语句。实际上,break 语句也可以用来从循环体中跳出,常常和if语 句配合使用。例如: for(i=1;i<100;i++) if(i>100)break; 当变量i>100时退出循环。 break语句不能用于循环语句和switch语句之 外的任何其他语句中。
(6)do{

for (;;);

}while ();
【例5-6】计算
s=1+(1+2)+(1+2+3)+…+(1+2+3+4+…+10)。
#include <stdio.h> void main() { int i,j,s; for(i=1,s=0;i<=10;i++) for(j=1;j<=i;j++) s=s+j; printf("s=%d\n",s); }
(1) 计算并判断表达式的值。若值为0,则结束循 环,退出while语句;若值为非0,则执行循环体 (2) 转步骤(1)

while语句的执行过程为:

5.2 while循环

流程图
【例5-1】计算s=1+2+3+…+100。
#include <stdio.h> void main() { int i,s; i=1; s=0; while(i<=100) /* 循环控制 */ { s=s+i; i=i+1; } printf("s=%d\n",s); }
Hanent整理
21世纪高等学校精品规划教材
第5章 循环结构程序设计




掌握循环结构的基本特点 掌握3种循环语句:for语句、while语句和dowhile语句 学会利用for语句、while语句和do-while语句 设计简单的循环程序 了解goto语句构成的循环
5.1 循环的基本概念
【问题】如何计算1+2+3+4+…+100
s = s + i; /* 投入i 枚硬币到s中*/ i = i + 1; /* 计算下次投币数 */
5.1.1 方法的探索
s=0; /* 盒子开始为空*/ i=1; /* 第1次投币*/ while(i<=100) /* 100次投币*/ { s=s+i; /* 投入i 枚硬币到s中*/ i=i+1; /* 计算下次投币数 */ }
相关文档
最新文档