C语言循环程序设计PPT教学课件
合集下载
《C语言程序设计课件》第四章-循环语句
scanf("&d",&n); while(n!=0)
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)
《循环程序设计》课件
避免死循环的方法
在编写循环程序时,应确 保循环终止条件在某个时 刻能够满足,或者在循环 体内有退出循环的语句。
死循环的危害
死循环会导致程序无法正 常结束,消耗大量的系统 资源,甚至可能导致系统 崩溃。
提高循环的效率
循环优化原则
在保证程序正确的前提下,尽可能减少循环次数,提高循环的执 行效率。
减少循环体内的计算
冒泡排序算法的时间复杂度
冒泡排序的时间复杂度为O(n^2),其中n为待排序的元素个数。因为冒泡排序需要重复遍 历整个列表,每次遍历都需要进行n次比较和交换操作。
斐波那契数列的求解
斐波那契数列的定义
斐波那契数列是一个数列,其中每个数字是前两个数字的和。第一个数字和第二个数字都是1,之后的每个数字都是 前两个数字的和。
《循环程序设计》ppt 课件
目录
• 循环程序设计概述 • 循环控制结构 • 循环嵌套 • 循环程序设计的实际应用 • 循环程序设计的优化与调试
01
循环程序设计概述
循环的定义与特点
总结词
描述循环的定义、特点以及在程序中的作 用。
嵌套循环
循环可以嵌套在其他循环内部,形成多层 循环结构。
详细描述
循环是一种重复执行一段代码的程序结构 ,它允许在满足特定条件时重复执行代码 块。循环具有以下特点
斐波那契数列的求解
在Python中,可以使用循环来计算斐波那契数列中的每个数字。具体实现过程是,定义两个变量分别表示前两个数 字,然后使用一个循环来计算斐波那契数列中的每个数字,直到达到所需的数字为止。
斐波那契数列的递归实现
另一种实现方法是使用递归。递归的实现方式是,定义一个函数来计算斐波那契数列中的第n个数字,然 后在函数中调用自身来计算前两个数字的和。递归的实现方式虽然简洁,但是效率较低,因为需要重复 计算相同的数字。
C语言循环结构程序设计 ppt课件
int i,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("Sum = %d\n",sum);
}
2021/3/26
C语言循环结构程序设计 ppt课件
25
C语言循环结构程序设计
do~while语句的一般形式为: do { 循环体语句; }while (表达式);
Do~whil e循环流程
(2) 求解表达式2,若其值为真(值为非0), 则执行for语句中指定的内嵌语句,然后 执行下面第(3)步。若为假(值为0),则 结束循环,转到第(5)步。
(3) 求解表达式3。
(4) 转回上面第(2)步骤继续执行。
(5) 循环结束,执行for语句下面的一个语 句
2021/3/26
C语言循环结构程序设计 ppt课件
2021/3/26
C语言循环结构程序设计 ppt课件
12
C语言循环结构程序设计
说明:
(4) 可以省略表达式1和表达式3,只有表达式2,即只
给循环条件。如:
for(;i<=100;)
while(i<=100)
{sum=sum+i; 相当于 {sum=sum+i;
i++;}
i++;}
在这种情况下,完全等同于while语句。可见for语句
while(i<=100)
{
控制循环次
sum+=i;
数
i++;
}
printf("Sum = %d\n",sum);
C语言程序设计第5章-循环结构程序设计ppt课件
分析:循环进行的条件是:i≤k和flag=0。因为在i>k时, 显然不必再去检查n是否能被整除,此外如果flag=1, 就表示n已被某一个数整除过,肯定是非素数无疑, 也不必再检查了。只有i≤k和flag=0两者同时满足才 需要继续检查。循环体只有一个判断操作:判断n 能否被i整除,如不能,则执行i=i+1,即i的值加1, 以便为下一次判断作准备。如果在本次循环中n能 被i整除,则令flag=1,表示n已被确定为非素数了, 这样就不再进行下一次的循环了。如果n不能被任 何一个i整除,则flag始终保持为0。因此,在结束 循环后根据flag的值为0或1,分别输出n是素数或非 素数的信息。
while(i<=k && !flag)
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);
}
.
返回本章首页
第5章 循环结构程序设计
【例5_1】用while语句求p=n!
#include<stdio.h>
int main()
{ int i=1,p=1; //循环初始化部分 while(i<=5) //循环控制部分
{ p=p*i; //循环体语句 i++; //循环修改部分
}
printf("5!=%d\n",p);
return 0;
10-3,则再执行循环体,把 term 值赋给term1.然后再累加 到s中去。可以看出:程序中 term1代表当前要累加的项, term代表下一项,如果这两项 之差未超过10-3,就将下一项 加到s 中。
while(i<=k && !flag)
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);
}
.
返回本章首页
第5章 循环结构程序设计
【例5_1】用while语句求p=n!
#include<stdio.h>
int main()
{ int i=1,p=1; //循环初始化部分 while(i<=5) //循环控制部分
{ p=p*i; //循环体语句 i++; //循环修改部分
}
printf("5!=%d\n",p);
return 0;
10-3,则再执行循环体,把 term 值赋给term1.然后再累加 到s中去。可以看出:程序中 term1代表当前要累加的项, term代表下一项,如果这两项 之差未超过10-3,就将下一项 加到s 中。
C语言程序设计PPT课件 第6章
§6.4 do-while语句 语句
一般形式: 一般形式: do 语句 while (表达式 表达式) 表达式 直到型”循环结构。 特点:“直到型”循环结构。
先执行一次“语句” 后判“表达式” 先执行一次“语句”,后判“表达式”,当“表 达式” 达式 ” 非 0, 再执行 “ 语句 ” , 直到 “ 表达式 ” , 再执行“ 语句” 直到“ 表达式” 为0,循环结束。 ,循环结束。
100
i
。
i=1,sum=0 假 i<=100 真 sum=sum+i i=i+1
i = 1
main() { int i,sum=0; i = 1; loop: if (i <= 100) /*标号表示程序指令的地址 当i≤100时,执行加法 */ 标号表示程序指令的地址,当 标号表示程序指令的地址 时 { sum = sum + i; i++; goto loop; /*无条件转向标号 无条件转向标号loop处的指令 */ 无条件转向标号 处的指令 } printf("%d",sum); }
goto语句有两种用途,一是与if语句一起构成 goto语句有两种用途,一是与if 语句有两种用途 if语句一起构成
循环结构,另一是从循环体中跳转到循环体外。 循环结构,另一是从循环体中跳转到循环体外。
[例6.1] 用if语句和 例 语句和goto语句构成循环, 语句构成循环, 语句和 语句构成循环 求∑
§6.3 while语句 语句
一般形式: 表达式) 一般形式:while (表达式 语句 表达式 作用:实现“当型”循环。 作用:实现“当型”循环。
假 当P为真 为真 A
表达式” 当“表达式”非0(真)时, 执行while语句中的内嵌“语句”。语句 ”
C语言程序设计--循环例子ppt课件
void main()
对应的等{级。
int n;
printf("请输入成绩:");
scanf("%d",&n);
switch ((int)(n/10))
{
case 10:
printf("成绩%d的等级为优秀\n",n);
case 9:
printf("成绩%d的等级为优秀\n",n);
case 8:
printf("成绩%d的等级为良好\n",n);
重复上述过程,共经过n-1趟冒泡排序后,排序结束
2020/4/27
printf("%d is a prime number\n", m);
else
printf("%d is not a prime number\n", m);
return(0);
} 2020/4/27
.
C语言程序设计
7.4 程序举例
【例7.6】模拟自动饮料机
——基础篇
#include "stdio.h" void main() {
C 语言程序设计 —基础篇
第 7 章 简单程序设计之二
——基础篇
本章内容提要
多分支选择结构—switch语句 循环嵌套 break语句和continue语句 程序举例
2020/4/27
.
C语言程序设计
教学目标
——基础篇
在三种基本结构的基础上,结合本章介绍流 程 控 制 的 其 他 几 个 语 句 : switch 语 句 、 break语句和continue语句及循环的嵌套, 实现复杂的算法,设计出结构清晰、功能强大 的程序,对C语言程序开发设计有比较深刻的 认识。
C语言程序设计循环结构程序设计PPT课件
printf("sum=%d\n",sum); }
程序输出结果:
sum=5050
2020/12/17
注意:
13
如果while的 (表达式) 值为0,则循环体一
次也不执行 (例如当i的初值=101) 。
在循环体中必须有使循环趋向结束的操作, 否则循环将无限进行(死循环)。
在循环体中,语句的先后位置必须符合逻 辑,否则会影响运算结果。
思考程序段的输出?
…… i=1; sum=0; while (i<=100)
{ i++; sum=sum+i; }
运行后,输出: sum=5150
原因是什么?
2020/12/17
注意(续):
14
总结:为了保证循环正常运行,应该特 别注意: – 循环控制条件的描述
– 控制条件的初始状态(初始值)
– 循环体内部对控制条件的影响
表达式非0?
Y 语句
循环控制条件
N-S结构图 当表达式为真 N
语句
循环体
2020/12/17
例如:
11
【例5.1】编写程序,求100个自然数的和 即: s=1+2+3+ … +100
思路:寻找加数与求和的规律
加数i——从1变到100,每循环一次,使i增1, 直到i的值超过100。i的初值设为1。
求和——设变量 sum 存放和,循环求 sum=sum+i,直至i超过100。
do-while循环的算法
16
流程图
N-S结构图
循环体
循环体 当表达式为真
表达式非0?
Y
N
用do-while语句 求100个自然数的和
程序输出结果:
sum=5050
2020/12/17
注意:
13
如果while的 (表达式) 值为0,则循环体一
次也不执行 (例如当i的初值=101) 。
在循环体中必须有使循环趋向结束的操作, 否则循环将无限进行(死循环)。
在循环体中,语句的先后位置必须符合逻 辑,否则会影响运算结果。
思考程序段的输出?
…… i=1; sum=0; while (i<=100)
{ i++; sum=sum+i; }
运行后,输出: sum=5150
原因是什么?
2020/12/17
注意(续):
14
总结:为了保证循环正常运行,应该特 别注意: – 循环控制条件的描述
– 控制条件的初始状态(初始值)
– 循环体内部对控制条件的影响
表达式非0?
Y 语句
循环控制条件
N-S结构图 当表达式为真 N
语句
循环体
2020/12/17
例如:
11
【例5.1】编写程序,求100个自然数的和 即: s=1+2+3+ … +100
思路:寻找加数与求和的规律
加数i——从1变到100,每循环一次,使i增1, 直到i的值超过100。i的初值设为1。
求和——设变量 sum 存放和,循环求 sum=sum+i,直至i超过100。
do-while循环的算法
16
流程图
N-S结构图
循环体
循环体 当表达式为真
表达式非0?
Y
N
用do-while语句 求100个自然数的和
C语言循环结构程序设计PPT课件
知识点精讲
printf(″%d\n″,fun(″056a0″)); } 【解析】 while循环是先判断条件,如果条件成立就执行语句,然后回到条件继续判断,直 到条件不成立就结束循环。while后的表达式为“*s<=′9′&&*s>=′0′”,当表达式的值为0时 循环结束,可以看出这道题就是把连续的数字字符转换成对应的数值,遇到非数字字符就结束, 所以最后的输出结果是56。 【答案】 56
知识点ቤተ መጻሕፍቲ ባይዱ讲
L7 i++; L8 } L9 printf("%f",s); L10 }
答案:第6行改成:{ s=s+1.0/i; //若不使用1.0/i,那么会把小数部分丢掉//
4.下列程序的运行结果是______2_,_-_1_____ #include "stdio.h" main) {int i=2,a=0; while ( i一) a++; printf ("% d,%d",a,i); }
第四章 循环结构程序设计
考纲要求
结构化程序的设计方法,for语句、while语句编程方法。
知识准备
高频考点:当型循环与直到型循环、循环控制变量、利用循环设计算法。 重难点分析:利用循环设计算法。
知识点精讲
知识点1 while循环
真题回顾 (2019年真题)下列程序的运行结果是___________ #include″stdio.h″ int fun(char s[]){ int n=0; while(*s<=′9′&&*s>=′0′) { n=10*n+*s-′0′; s++; } return n; } main(){
循环程序设计PPT课件
…
表达式? N
Y
后续语句
第23页/共59页
for语句 计算表达式1
表达式2? N
Y… continue;
… 计算表达式3
后续语句
[例]:用while语句求n项和
#include<stdio.h> main() {int i,sum=0; i=1; while(i<=100)
{sum=sum+i; i++; } printf("%d\n",sum); }
while 循环程序 #include<stdio.h>
do -while 循环程序 #include<stdio.h>
main()
main()
{int i,sum=0;
{int i,sum=0;
scanf("%d",&i);
scanf("%d",&i);
while(i<=10)
do
{sum=sum+i;
main()
main()
{ int x,sum=0; scanf("%d",&x);
{ int x,sum=0;
do
结果:sum=-2
while(x>=0) 结果:sum=8 { sum=sum+x;结果:sum=0
scanf("%d",&x);
{
结果:sum=-10
scanf("%d",&x);
sum=sum+x;
do—while循环体中一定要有能使表达式值 趋于0的操作(如i++),否则会出现死循环。
表达式? N
Y
后续语句
第23页/共59页
for语句 计算表达式1
表达式2? N
Y… continue;
… 计算表达式3
后续语句
[例]:用while语句求n项和
#include<stdio.h> main() {int i,sum=0; i=1; while(i<=100)
{sum=sum+i; i++; } printf("%d\n",sum); }
while 循环程序 #include<stdio.h>
do -while 循环程序 #include<stdio.h>
main()
main()
{int i,sum=0;
{int i,sum=0;
scanf("%d",&i);
scanf("%d",&i);
while(i<=10)
do
{sum=sum+i;
main()
main()
{ int x,sum=0; scanf("%d",&x);
{ int x,sum=0;
do
结果:sum=-2
while(x>=0) 结果:sum=8 { sum=sum+x;结果:sum=0
scanf("%d",&x);
{
结果:sum=-10
scanf("%d",&x);
sum=sum+x;
do—while循环体中一定要有能使表达式值 趋于0的操作(如i++),否则会出现死循环。
《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;
C语言程序设计第5章循环结构程序设计简明教程PPT课件
第5章
循环结构程序设计
第5 章
循环结构程序设计
当你对C语言程序设计有了一定了解和掌握后,若 想要处理一些更复杂的任务时,当满足某一条件想反 复执行某个程序时,该如何处理呢?
控制语句能够控制程序的流程,根据判断决 定重复运行什么。
程序的三种结构
•顺序结构 •选择结构 •循环结构
本章所
学Байду номын сангаас目标
了解循环结构的特点; 掌握while语句、do-while语句、for语句; 掌握while循环结构、do-while循环结构、for循 环结构 掌握break和continue语句的使用; 理解循环嵌套。 掌握各种循环的应用;
C语言程序设计
第5章 循环结构程序设计
4
【例5.1】输入10个数,求它们的和并输出。
#include <stdio.h> int main() { float x,sum=0; int k=0; while(k<10) { printf("please input x:\n"); scanf("%f",&x); //输入一个数 sum=sum+x; //进行累加 k++; } printf("sum=%f\n",sum); return 0; } 运行结果: please input x:5↙ please input x:7↙ please input x:8↙ please input x:14↙ please input x:53↙ please input x:12↙ please input x:35↙ please input x:9↙ please input x:10↙ please input x:47↙ sum=200
循环结构程序设计
第5 章
循环结构程序设计
当你对C语言程序设计有了一定了解和掌握后,若 想要处理一些更复杂的任务时,当满足某一条件想反 复执行某个程序时,该如何处理呢?
控制语句能够控制程序的流程,根据判断决 定重复运行什么。
程序的三种结构
•顺序结构 •选择结构 •循环结构
本章所
学Байду номын сангаас目标
了解循环结构的特点; 掌握while语句、do-while语句、for语句; 掌握while循环结构、do-while循环结构、for循 环结构 掌握break和continue语句的使用; 理解循环嵌套。 掌握各种循环的应用;
C语言程序设计
第5章 循环结构程序设计
4
【例5.1】输入10个数,求它们的和并输出。
#include <stdio.h> int main() { float x,sum=0; int k=0; while(k<10) { printf("please input x:\n"); scanf("%f",&x); //输入一个数 sum=sum+x; //进行累加 k++; } printf("sum=%f\n",sum); return 0; } 运行结果: please input x:5↙ please input x:7↙ please input x:8↙ please input x:14↙ please input x:53↙ please input x:12↙ please input x:35↙ please input x:9↙ please input x:10↙ please input x:47↙ sum=200
《C程序设计-循环》课件
3
循环的边界检查
重点讲解在循环中进行边界检查的重要性,以及如何避免数组越界和空指针错误。
循环在算法中的应用
介绍循环在算法中的常见应用,如排序、查找、递归等。演示如何利用循环 构建高效的算法解决实际问题。
循环编程思想与程序设计的思 路
探讨循环思想对程序设计的重要性,以及如何运用循环思维解决复杂问题。 讲解程序设计的基本思路和注意事项。
循环的概念及基本语法
介绍C语言中循环的基本概念和语法,包括fo r 、w h i le和d o -w h i le等循环结构,以及在程序中的作用和常见应 用场景。
循环变量的初始化及修改
详解循环时变量初始化的重要性,以及在循环内部对变量进行修改的技巧。 强调避免在循环中引入多余的变量或错误的修改。
循环的控制语句
介绍循环中常用的控制语句,包括break和co n t in u e的使用方法和注意事项。 演示如何利用这些语句优化循环结构和提高程序效率。
嵌套循环的使用及应用
讲解如何在循环中嵌套其他循环,并给出实际应用示例,如矩阵运算、图形 绘制等。提供避免嵌套循环陷入无限循环的技巧。
循环处理数组元素
探讨如何使用循环遍历数组,并给出示例代码和常见应用场景,如数组排序、查找最大值等。讲解如何避免数 组越界时间复杂度分析
在循环中评估算法的时间复杂度,解释如何选择最优算法和避免性能问题。
2
循环的效率问题
讨论循环中的常见效率问题,如死循环、多余计算等,给出解决方案和优化建议。
《C程序设计-循环》PPT 课件
A comprehensive presentation on the topic of loops in C programming. Covering the concepts, syntax, usage, and optimization techniques, as well as practical applications and comparison with recursion.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for (i=1;i<=9;i++) /* 1 */ { for(j=0;j<=9;j++) /* 2 */
{ for(k=0;k<=9;k++) if(101*i+20*j+101*k==1231) printf("x=%d,y=%d,z=%d\n",i,j,k);
} /* end of 2 */
if (m%i==0) { f=0;
break; } if (f) printf(“yes”); else printf(“no”); }
2020/12/12
for (i=2;i<m/2;i++) for (i=2;i<sqrt(m);i++)
if (f==1) printf(“yes”);
14
【例2】给出程序的含义.(break与continue比较)
} /* end of 1 */
}
2020/12/12
10
6.7 几种循环的比较
•四种循环可以互相代替,但不提倡用goto型循环 •while 和do while型循环:
循环变量初始化的操作应在while 和do while语 句之前完成;在while后指定循环条件;循环体中 应有可使循环结束的语句,
main()
{
int n,i=1,sum=0;
printf(“input the n=”);
scanf(“%d”,&n);
loop: if (i<=n)
{
sum+=i++; goto loop; }
printf(“the sum is %d\n’,sum);
}
2020/12/12
2
6.3 while语句
break语句 跳出switch语句,终止for,while,do while 循环
while(表达式1) { 语句1;
if(表达式2) break; 语句2; }
假 表达式1
真 语句1
表达式2 真 假
语句2
表达式1为假或表达式2为真,
就结束整个循环。
2020/12/12
12
continue语句 结束本次循环,回到循环的开头,继续下一次循环
•for语句: 在表达式1中初始化循环变量,表达式2指定
循环条件,表达式3含有可使循环结束的语句甚至 循环体。因此,功能最强。
•break,continue 可用于while,do while ,for循环,但不 能用于goto型循环。
2020/12/12
11
6.8 break语句和continue语句
while(表达式1) { 语句1;
if(表达式2) continue; 语句2; }
表达式1为假才能结束整个循环。
假 表达式1
真 语句1
真 表达式2 假
语句2
2020/12/12
13
【例1】判断m是否是素数.
main() { int m,i, f=1;
scanf(%d”,&m); for (i=2;i<m;i++)
}
}
printf("%d",s);
main()
{ int i=1,s=0;
do {
s=s+i; i++;
} while (i<=100) ;
printf(“the sum is %d/n’,s);
}2020/12/12
5
6.5 for语句
一般形式: for (表达式1;表达式2;表达式3) 语句
表达式1
表达式2
真
假
语句
表达式3
赋初值 循环条件
• 表达式3可以省略,但应保证循环正常进行 for ( sum=0,i=1;i<=100; ) { sum=sum+i; i++;}
• 省略表达式1和3,只有表达式2
for (; i<=100; ) { sum=sum+i;
i++;}
•三个表达式都省略 for( ; ; ) 语句
while (i<=100) {sum=sum+i; i++;}
while(1) 语句
2020/12/12
8
6.6 循环的嵌套(多重循环 )
三种循环可以互相嵌套,见p113
非法的嵌套
2020/12/12
合法的嵌套
9
【例】编程求三个数字x、y、z (0~9) 满足: xyz+zyx=1231。
#include "stdio.h" main( ) { int i,j,k;
main() { int i=1,s=0;
while (i<=100) s=s+i++; printf(“the sum is %d/n’,s); }
2020/12/12
4
6.3 do while 语句
一般形式: do 语句 while (表达式);
语句
真 表达式
假
当表达式值为真时,返回循环头重新执行语句,直到表达式的值为假。 特点:先执行后判断。至少执行一次循环体.
一般形式: while(表达式) 语句
表达式 假 真
语句
当表达式为真(非0)时,执行循环语句。 特点:先判断后执行.
注意:
1 循环语句可以是复合语句,用{}括起来。
2020/122/应12 使循环能3;3+…+100 的结果
main() { int i=1,s=0;
while (i<=100) { s=s+i; i++; } printf(“the sum is %d/n’,s); }
第六章 循环程序设计
6.1 概述
1. goto语句和if 语句构成循环 2. while循环 3. do-while循环 4. for循环
6.2 goto语句以及goto语句构成的循环
一般形式 : goto 语句标号 语句标号用表识符表示;这种循环不常用
2020/12/12
1
例:求表达式1+2+3+…+n 的结果
改变循环变量
2020/12/12
6
等价的表示形式: 表达式1 ; While (表达式2) { 语句;
表达式3; } for (表达式1;表达式2;表达式3)
语句
int i, sum; for (i=1,sum=0; i<=100;i++) sum=sum+i;
2020/12/12
7
说明:
• 表达式1可以省略,但分号不可省 for(;i<=100;i++) sum=sum+i;
main() /* break*/
main() /* continue */
{
{
int i,s;
int i,s;
i=1;s=0;
i=0;s=0;
for (;;)
for (;i<=50;)
{ s+=i;
{ i++;
i++;
if (i>10) continue;
if (i>10) break;
s+=i;
{ for(k=0;k<=9;k++) if(101*i+20*j+101*k==1231) printf("x=%d,y=%d,z=%d\n",i,j,k);
} /* end of 2 */
if (m%i==0) { f=0;
break; } if (f) printf(“yes”); else printf(“no”); }
2020/12/12
for (i=2;i<m/2;i++) for (i=2;i<sqrt(m);i++)
if (f==1) printf(“yes”);
14
【例2】给出程序的含义.(break与continue比较)
} /* end of 1 */
}
2020/12/12
10
6.7 几种循环的比较
•四种循环可以互相代替,但不提倡用goto型循环 •while 和do while型循环:
循环变量初始化的操作应在while 和do while语 句之前完成;在while后指定循环条件;循环体中 应有可使循环结束的语句,
main()
{
int n,i=1,sum=0;
printf(“input the n=”);
scanf(“%d”,&n);
loop: if (i<=n)
{
sum+=i++; goto loop; }
printf(“the sum is %d\n’,sum);
}
2020/12/12
2
6.3 while语句
break语句 跳出switch语句,终止for,while,do while 循环
while(表达式1) { 语句1;
if(表达式2) break; 语句2; }
假 表达式1
真 语句1
表达式2 真 假
语句2
表达式1为假或表达式2为真,
就结束整个循环。
2020/12/12
12
continue语句 结束本次循环,回到循环的开头,继续下一次循环
•for语句: 在表达式1中初始化循环变量,表达式2指定
循环条件,表达式3含有可使循环结束的语句甚至 循环体。因此,功能最强。
•break,continue 可用于while,do while ,for循环,但不 能用于goto型循环。
2020/12/12
11
6.8 break语句和continue语句
while(表达式1) { 语句1;
if(表达式2) continue; 语句2; }
表达式1为假才能结束整个循环。
假 表达式1
真 语句1
真 表达式2 假
语句2
2020/12/12
13
【例1】判断m是否是素数.
main() { int m,i, f=1;
scanf(%d”,&m); for (i=2;i<m;i++)
}
}
printf("%d",s);
main()
{ int i=1,s=0;
do {
s=s+i; i++;
} while (i<=100) ;
printf(“the sum is %d/n’,s);
}2020/12/12
5
6.5 for语句
一般形式: for (表达式1;表达式2;表达式3) 语句
表达式1
表达式2
真
假
语句
表达式3
赋初值 循环条件
• 表达式3可以省略,但应保证循环正常进行 for ( sum=0,i=1;i<=100; ) { sum=sum+i; i++;}
• 省略表达式1和3,只有表达式2
for (; i<=100; ) { sum=sum+i;
i++;}
•三个表达式都省略 for( ; ; ) 语句
while (i<=100) {sum=sum+i; i++;}
while(1) 语句
2020/12/12
8
6.6 循环的嵌套(多重循环 )
三种循环可以互相嵌套,见p113
非法的嵌套
2020/12/12
合法的嵌套
9
【例】编程求三个数字x、y、z (0~9) 满足: xyz+zyx=1231。
#include "stdio.h" main( ) { int i,j,k;
main() { int i=1,s=0;
while (i<=100) s=s+i++; printf(“the sum is %d/n’,s); }
2020/12/12
4
6.3 do while 语句
一般形式: do 语句 while (表达式);
语句
真 表达式
假
当表达式值为真时,返回循环头重新执行语句,直到表达式的值为假。 特点:先执行后判断。至少执行一次循环体.
一般形式: while(表达式) 语句
表达式 假 真
语句
当表达式为真(非0)时,执行循环语句。 特点:先判断后执行.
注意:
1 循环语句可以是复合语句,用{}括起来。
2020/122/应12 使循环能3;3+…+100 的结果
main() { int i=1,s=0;
while (i<=100) { s=s+i; i++; } printf(“the sum is %d/n’,s); }
第六章 循环程序设计
6.1 概述
1. goto语句和if 语句构成循环 2. while循环 3. do-while循环 4. for循环
6.2 goto语句以及goto语句构成的循环
一般形式 : goto 语句标号 语句标号用表识符表示;这种循环不常用
2020/12/12
1
例:求表达式1+2+3+…+n 的结果
改变循环变量
2020/12/12
6
等价的表示形式: 表达式1 ; While (表达式2) { 语句;
表达式3; } for (表达式1;表达式2;表达式3)
语句
int i, sum; for (i=1,sum=0; i<=100;i++) sum=sum+i;
2020/12/12
7
说明:
• 表达式1可以省略,但分号不可省 for(;i<=100;i++) sum=sum+i;
main() /* break*/
main() /* continue */
{
{
int i,s;
int i,s;
i=1;s=0;
i=0;s=0;
for (;;)
for (;i<=50;)
{ s+=i;
{ i++;
i++;
if (i>10) continue;
if (i>10) break;
s+=i;