C语言程序设计第六章循环结构程序设计
循环结构(课件)-《C语言程序设计》同步教学
if (循环条件在进入循环时明确)
使用 while 语句
else /* 循环条件需要在循环体中明确 */
使用 do-while 语句
5、break和continue语句
(1)break关键字 语句格式:break;
例如:编写程序实现,输入一个整数判断此数是否witch结构或者一个 循环体
案例1运行结果:
Input a string:I am a Chinese.↙ Number is: 15
简单循环案例分析
案例2 统计大写字符(do-while) 要求:从键盘输入一串字符(输入回车符时结束),统 计其中大写英文字母的个数。
算法设计:
(1)设置变量ch存放输入的字符;计数器变量 num存放大写英文字母的个数 (2)输入字符ch 若ch是大写英文字母,计数器num+1 重复上述操作,直到输入换行符为止 (3)输出大写英文字母个数
C 语言程序设计
翻转课堂实用教程
循环结构
简单循环结构 嵌套循环结构
简单循环结构
1、while循环
语句格式:
while(表达式) {
循环体(语句块); }
执行描述: (1)计算while后面的表达式值,如
果值为真,则执行步骤(2), 否则跳出循环体,继续执行该结 构后面的语句。 (2)执行循环体语句; (3)重复执行步骤(1)。
案例3程序代码:
int main() {
double mark, max,length; printf("Enter length:"); scanf ("%lf", &length); /* 读入第一个身高值 */ max = length; /* 假设第一个身高值最大 */ while (length >= 0){
C语言循环结构程序设计1
3 while语句
例1:输出1~200中所有能被4整除的整数。
i=1 i<=200
i % 4==0 T 输出 i i++ F
#include <stdio.h> void main() { int i=1; while(i<=200) { if( i%4==0) printf(“%d,”,i); i++;
2 循环结构算法设计
例1:输出1~200中所有能被4整除的整数。
i=1 i<=200
i % 4==0 T 输出 i i++ F
2 循环结构算法设计
直到型循环结构设计 (1)赋初值 (2)执行循环操作的语句序列 (3)判断循环条件是否为真,是则转(2) 否则转(4) (4)结束循环
2 循环结构算法设计
执行语句 语句 执行表达式3
循环体
for语句等价于下列语句: 语句等价于下列语句: 语句等价于下列语句 表达式1; 表达式 ; while (表达式 ) 表达式2) { 语句; 语句; 表达式3; 表达式 ; }
执行for循环之后的语句
5 for语句
for语句使用最多的情况:
for(循环变量赋初值;循环条件;循环变量增量) 语句; 例如:for( i=1;i<100;i++ ) for( sum+=i; 注意:for语句后边括号中的三个表达式可以省略, 可是括号中的两个分号不能省略
5 for语句
3.省略表达式3 for(i=0;i<10; ) i的值不变,也是 sum+=i; 死循环
5 for语句
例2:求4的10次方 …… int a=1,b=4,i; for(i=0;i<10;i++ ) a=a*b; ……
循环结构程序设计(C语言实验报告)
循环结构程序设计(C语言实验报告)实验目的:1. 掌握循环结构程序设计流程2. 熟悉while、do-while和for循环语句的使用3. 掌握循环语句的嵌套应用实验原理:循环结构是一种非常重要的程序设计结构,其目的是为了让程序可以重复执行一段代码块,从而达到省去大量代码重复编写的目的,也可以是让程序能够按照用户的需求反复执行一段代码块。
在C语言中,常用的循环结构有while、do-while和for三种,这三种循环语句的基本语法结构是:while(循环条件){循环体语句;}其中,while循环和do-while循环的区别在于:while循环条件成立时,不一定会执行一次循环体,但do-while循环条件成立时,会先执行一次循环体,然后判断循环条件是否成立;至于for循环,则是将循环条件、循环初值和循环增量三个要素集成在一起,使用比较方便。
另外,循环结构也可以进行嵌套应用,即在循环体内部再嵌套一个循环,这样可以实现多个变量的循环控制。
应用实例包括如下:1. 打印九九乘法表2. 对一个数组进行排序3. 多重循环实现字谜游戏实验内容:1. while循环:目的是求出1~100的整数和,并在程序运行过程中输出1~100的所有整数。
目的是输入若干个数字,计算它们的平均值。
3. for循环:目的是输入一个数n,求1~n中可以被3或5整除的所有整数和。
4. 循环嵌套:目的是打印九九乘法表。
实验总结:本次实验通过三种常用的循环结构,并结合实例进行学习掌握,同时还熟悉了循环嵌套的应用。
相信这对于日后的程序设计和代码优化应用会非常有帮助。
C语言程序设计循环结构程序设计
C语言程序设计循环结构程序设计循环结构是一种重复执行特定任务的程序设计方法,它可以节省代码量,提高代码的复用性和可读性。
C语言提供了多种循环结构,如for循环、while循环和do-while循环。
在本文中,将介绍C语言程序设计中循环结构的应用。
首先,我们来介绍for循环。
for循环是一种在已知循环次数的情况下使用的循环结构。
它的基本语法如下:```for (初始化表达式; 循环条件表达式; 循环后操作表达式)代码块```其中,初始化表达式用于初始化计数器变量,循环条件表达式用于判断是否继续执行循环,循环后操作表达式用于更新计数器变量的值。
具体代码示例如下:```c#include <stdio.h>int maiint i;for (i=0; i<5; i++)printf("Hello, World!\n");}return 0;```上述代码会打印"Hello, World!"五次。
在for循环中,初始化表达式会在循环开始前执行一次,循环条件表达式会在每次循环开始时判断,如果为真则执行循环体中的代码块,然后执行循环后操作表达式,然后再次判断循环条件表达式,依此类推,直到循环条件表达式为假时循环结束。
接下来,我们介绍while循环。
while循环是一种在不知道循环次数的情况下使用的循环结构。
它的基本语法如下:```while (循环条件表达式)代码块```具体代码示例如下:```c#include <stdio.h>int maiint i = 0;while (i < 5)printf("Hello, World!\n");i++;}return 0;```上述代码与前面的示例效果相同,都会打印"Hello, World!"五次。
在while循环中,循环条件表达式会在每次循环开始时判断,如果为真则执行循环体中的代码块,然后再次判断循环条件表达式,依此类推,直到循环条件表达式为假时循环结束。
循环结构程序设计C语言程序
n--=2 a++ a=1 a++*2 输出:2 n=1 a=2
n=1 a=2 a++ a=2 a++*2 输出:4 n--=0 a=3
2. do_while语句
一般形式:
do 循环体语句; while(表达式);
执行流程:
其中: while后面的括号( )不能省。 while最后面的分号;不能省。 while后面的表达式可以是任意类型的表达式,但一般是条件表达式或逻辑表达式。 表达式的值是是循环的控制条件。 语句部分称为循环体,当需要执行多条语句时,应使用复合语句。
表达式1、表达式2、和表达式3可以是任何类型的表达式。比方说,这三个表达式都可以是逗号表达式,即每个表达式都可由多个表达式组成。
逗号表达式
逗号表达式
for语句注意事项:
#include <stdio.h> void main ( ) { int i, sum = 0; i = 1; for ( ; i <= 100; i++) sum += i; printf("sum = %d\n", sum); }
例5.3 while和do~while比较
#include <stdio.h> main() { int i,sum=0; scanf("%d",&i); do { sum+=i; i++; }while(i<=10); printf("%d",sum); }
F
T
expr
循环体
do
while
特点:先执行循环体,再判断表达式
C语言循环结构程序设计
执行过程
1. 先求解表达式1
2. 求解表达 式2,若其值 为“真”则执行 for语句中指定的内嵌语句,然后执行 第(3)步。若为"假",则结束循环转 到第(5)步 3. 求解表达式3
4. 转回上面第(2)步骤继续执行 5. 循环结束,执行for语句的执行过程
15/32
用for语句实现循环
for应用形式
8/32
用while语句和do…while语句实现循环
while语句的一般形式:
while(表达式)语句;
特点:
先判断表达式,后执行循环体, 即内嵌语句
思考:
上例中如果while语句中的条件改 为"(i<100)",情况会怎样,
输出结果是什么?
9/32
用while语句和do…while语句实现循环
20/32
用for语句实现循环
for循环程序举例
例5.5 人口增长预测。据2005年末统计,我国人口为130 756万人,如 果人口的年增长率为1%,请计算到哪一年中国总人口超过15亿。 编写程序 # include < stdio.h > void main () { double p=1.30756e9, r=0.01; int y; for (y=2006; p<1.5e9; y++) { p=p*(1+r); /* 赋值号两侧的变量p代表不同含义 */ } printf (“year=%d, p=%e\n”, y-1, p); /*退出循环时y+1了*/ }
用do…while语句实现循环形式:
do 循环体语句; while(表达式);
特点:
C语言程序设计(while 循环结构)
sum+=grade; num++; scanf("%lf",&grade); } if (num) printf(“\n%d 人的平均成绩:%.1f”,num,sum/num);/*输出结果*/ else printf(“\n 平均成绩为 0!”);
int num=0; /*用 num 统计输入成绩的学生人数,以便统计学生的平均分数*/ double sum=0, grade; /*用 sum 记录成绩的累加和,初值为 0,grade 接受键盘输入的成绩*/
printf(“请依次输入学生的考试成绩,空格间隔,并以负数结束输入\n”); scanf(“%lf”,&grade);
return 0; }
注意: (1)while 语句中的表达式一般是关系表达或逻辑表达式,但原则上可以是任何合法的 表达式; (2)循环条件的选择应该避免死循环,即无法结束循环体的执行;表达式的值每次循 环后都应该有所改变,否则也会引起死循环。
假 表式?
真 语句
循环体外语句 图 3-7 while 循环结构的执行过程
【例 3-11】 从键盘输入若干名学生的成绩,计算平均分。 分析:这是一个累加求和的问题,将输入的成绩依次累加(用循环结构实现,循环条件 是成绩 grade>=0),完成累加后再将累加和除以学生的人数,算出平均分。
/*程序名:3_11.c*/ /*功能:键盘输入若干学生的成绩,计算平均成绩并输出*/ #include <stdio.h> int main() {
1.while 循环结构
while 循环结构的一般形式为: while(表达式) 语句;
C语言循环结构程序设计
i=-i;
//然后对i取负,得到它的绝对值
}
if(i==0)
printf("%d",i);
while(i!=0)
{
r=i%10;
printf("%d",r);
i=i/10;
}
printf("\n");
}
注意:循环体的有效范围 例: i=1; while(i<=100)
putchar(‘*’); i++;
i++;
i=10,iSum=55 1+2+3+...+10=55
} while(i<=10);
printf("1+2+3+...+10= %d\n",iSum);
}
例5.7 将一个给定的整数反序输出。
#include "stdio.h"
void main()
{
int i,r;
printf("\nInput an integer:");
{
****
for(j=1;j<=i;j++)
*****
putchar('*');
putchar('\n');
}
}
例5.12 求100以内的全部素数。
void main() {
int m,n,i,prime; i=0; for(m=2;m<=100;m++) {
void main()
{
int m,n,r;
printf("please input two positive integers:");
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语言程序设计电子课件——循环结构程序设计
【要求】 改写:各种嵌套下的写法。 for /for for/while while/while
【例】打印如下图所显示的九九乘法表
1*1= 1 1*2= 2 2*2= 4 1*3= 3 2*3= 6 3*3= 9 1*4= 4 2*4= 8 3*4=12 4*4=16 1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25 1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
解答:使用真值表
E
!E E==0 E!=1 E!=0 E==1
0
1
1
1
0
0
非0
0
0
可能
1
可能
【思考】与其类似的是p77/16.
五、do … while语句
do … while语句的一般格式 do … while语句也是一个循环控制语句。
其特点是先执行循环体,然后判断条件是 否成立。其一般格式为: do {循环体} while(表达式);
【问题】
p78/2.4 执行下列程序段的结果为: for(a=1,i=-1;-1<i<1;i++)
{ a++; printf(“%2d”,a); } printf(“%2d”,i);
C语言第06章 循环结构程序设计PPT课件
main() { int i,sum; sum=0; for (i=1;i<=100;i++) sum=sum+i;
printf("\nsum=%d",sum); }
main() {int i,sum=0;
i=1; while(i<=100) {sum=sum+i;
定义i=1,s=1,m,n=1
n>=10
m=1.0/i*s ; sum=sum+m;
i=i+2; s=-s;n++;
输出sum
本程序的N-S框图
求s=1-1/3+1/5-…前10项之和.
##iinncclluuddee““ssttddiioo..hh""
求s=1-1/3+1/5-…前 q项之和
mmaaiinn(())
6-1.c
1+2+3+4+5+6的和
main() { int i=1,sum=0; while(i<=6) {
sum=sum+i;
i=i+1; /*i++;*/
} printf("%d",sum); }
注意:1.内嵌语句可以是复合语句。 2.在循环体中要使循环变量变化的语句。
求1+2+3+… +n的和
n=score/100;
switch(n)
case7:
case6: printf("\tA\n"); break;
C语言程序设计-第三版-谭浩强主编第6—8章课后习题答案
C语言程序设计-第三版-谭浩强主编第6—8章课后习题答案第六章循环语句6.1输入两个正数,求最大公约数和最小公倍数.#includevoidmain(){inta,b,num1,num2,temp;printf(\请输入两个正整数:\\n\canf(\if(num1temp=num1;num1=num2;num2=temp;}a=num1,b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf(\它们的最大公约数为:%d\\n\printf(\它们的最小公倍数为:%d\\n\}编译已通过6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.解:#includevoidmain(){charc;intletter=0,pace=0,degit=0,other=0;printf(\请输入一行字符:\\n\while((c=getchar())!='\\n'){if(c>='a'&&c<='z'||c>'A'&&c<='Z')letter++;eleif(c=='')pace++;eleif(c>='0'&&c<='9')digit++;eleother++;}printf(\其中:字母数=%d空格数=%d数字数=%d其它字符数=%d\\n\digit,other);}6.3求(n)=a+aa+aaa++aaa之值,其中a是一个数字,n表示a的位数。
解:voidmain(){inta,n,count=1,n=0,tn=0;printf(\请输入a和n的值:\\n\canf(\printf(\while(count<=n){tn=tn+a;n=n+tn;a=a某10;++count;}printf(\\\n\}6.4求(即1+2!+3!+4!++20!)voidmain(){floatn,=0,t=1;for(n=1;n<=20;n++){t=t某n;=+t;}printf(\\\n\}阶乘利用递归,再求和:#includeuingnamepacetd;longFunc(intn){ if(1==n)returnn;if(n>1)returnn某Func(n-1);}main(){long=0;inti=1;while(i<=6){=+Func(i);i++;}cout<6.5求voidmain(){intk,N1=100,N2=50,N3=10;float1=0.0,2=0.0,3=0.0;for(k=1;k<=N1;k++)/某计算1到100的和某/{1=1+k;}for(k=1;k<=N2;k++)/某计算1到50各数平方和某/{2=2+k某k;}for(k=1;k<=N3;k++)/某计算1到10各数倒数之和某/{3=3+1.0/k;}printf(\总和=%8.2f\\n\}已通过intmain(){intk=1,i=11,j=51;float=0.0;while(k<=10){=+k+k某k+1.0/k;while(k==10&&i<=50){=+i+i某i;while(i=50&&j<=100){ =+j;j++;}i++;}k++;}}6.6所谓“水仙开数”是指一个3位数,其个位数字立方和等于该数本身。
《循环结构程序设计》课件
for循环结构的执行流程
总结词
详细描述for循环结构的执行流程,包括初始化、条件判断、循环体执行和更新四个步 骤。
详细描述
for循环结构的执行流程包括四个步骤。首先,进行初始化操作,设置循环变量的初始 值。然后,进行条件判断,检查是否满足循环继续的条件。如果条件满足,执行循环体 内的语句。最后,进行更新操作,修改循环变量的值,然后再次进行条件判断,重复执
while循环结构的注意事项
总结词
关键点全覆盖
详细描述
使用while循环结构时需要注意以下几点,首先,条件表达式必须保证在某个时刻变为假,否则循环 将无限进行下去;其次,在循环体内应包含使条件表达式最终变为假的操作;最后,应避免在循环体 内使用使条件表达式永远为真的操作。
04
do-while循ห้องสมุดไป่ตู้结构
do-while循环结构的语法
总结词:简洁明了
详细描述:do-while循环结构的语法包括"do"关键字、"while"关键字、循环体和条件表达式。语法 格式为"do {循环体} while (条件表达式);"
do-while循环结构的执行流程
总结词:逻辑清晰
详细描述:do-while循环结构的执行流程是先执行一次循环 体,然后判断条件表达式,如果条件表达式为真,则再次执 行循环体,否则退出循环。循环体会一直执行直到条件表达 式不再满足为止。
循环结构的应用实例
用for循环计算1到100的累加和
总结词:简单明了
详细描述:通过使用for循环,我们可以轻松地计算从1到 100的所有整数的累加和。在每次循环中,我们将当前数 字添加到总和中,直到我们达到100。
C语言第6章循环结构程序设计
第6章循环控制本章要求:1、初步熟悉用计算机解决问题的思路。
2、掌握while、do-while、for语句的特点和使用方法。
3、掌握break、continue语句的用法。
4、熟悉一些常见问题的算法及其C语言实现。
§6.1 概述循环:反复执行称为“循环体”的程序段。
循环控制常用于数学迭代、对象遍历等问题的求解,几乎所有实用程序都包含循环。
特别是在现代多媒体处理程序(图像、声音、通讯)中,循环更是必不可少。
Intel公司为了加快循环程序的执行,在CPU硬件中加入多媒体扩展指令MMX(Multi-Media-eXtension );AMD在CPU中加入3D Now!指令。
循环结构是结构化程序三种基本结构之一。
(顺序结构、分支结构)。
根据开始循环的初始条件和结束循环的条件不同,C语言中用如下语句实现循环1、用goto语句和if语句构成循环。
2、用while语句。
3、用do-while语句。
4、用for语句。
§6.2 goto语句一般形式:goto 语句标号作用:无条件转向“语句标号”处执行。
“语句标号”是一个标识符,它表示程序指令的地址。
goto语句不符合结构化程序设计准则,因为无条件转向使程序结构无规律、可读性差。
一般应避免使用goto语句,但如果能大大提高程序的执行效率,也可以使用。
[例6.1] 用if语句和goto语句构成循环,求。
main(){int i,sum=0;i = 1;loop:if (i <= 100){ sum = sum + i;i++;goto loop;}printf("%d",sum);}§6.3 while语句一般形式:while(表达式) 语句作用:实现“当型”循环。
当“表达式”非0(真)时,执行“语句”。
“语句”是被循环执行的程序,称为“循环体”。
特点:先判“表达式(条件)”。
[例6.2]main(){int i,sum=0;i = 1;whie (i <= 100){sum = sum + i;i++;}printf("%d",sum);}注意:1、注意给出循环的初始条件,如本例中“sum=0、i=1”。
c语言循环结构课程设计
c语言循环结构课程设计一、课程目标知识目标:1. 学生能理解循环结构的基本概念,掌握for、while、do-while循环的使用方法。
2. 学生能运用循环结构进行程序设计,实现特定功能的算法。
3. 学生了解循环控制语句(如break、continue)的作用,并能合理运用。
技能目标:1. 学生能运用循环结构编写简单的C语言程序,解决实际问题。
2. 学生通过循环结构的编程实践,培养逻辑思维能力和问题解决能力。
3. 学生掌握循环结构调试方法,能对程序进行基本的错误检查和修正。
情感态度价值观目标:1. 学生在编程过程中,培养耐心、细心和专注的品质。
2. 学生通过团队协作解决问题,提升沟通能力和团队意识。
3. 学生在循环结构的编程实践中,体验编程的乐趣,增强对计算机科学的兴趣。
分析课程性质、学生特点和教学要求,本课程旨在使学生在掌握循环结构知识的基础上,提高编程技能,培养良好的编程习惯和团队合作意识。
课程目标具体、可衡量,为后续教学设计和评估提供明确依据。
二、教学内容本课程教学内容以C语言循环结构为核心,结合教材以下章节:1. 循环结构概述:介绍循环结构的基本概念,包括循环的分类和作用。
- 章节内容:循环语句的组成、循环的执行过程。
2. for循环:讲解for循环的语法和使用方法,通过实例演示其应用。
- 章节内容:for循环的初始化、条件表达式、循环体、步进表达式。
3. while循环:介绍while循环的语法和应用,对比for循环的异同。
- 章节内容:while循环的条件表达式、循环体。
4. do-while循环:讲解do-while循环的特点,演示其使用场景。
- 章节内容:do-while循环的循环体、条件表达式。
5. 循环控制语句:介绍break、continue等循环控制语句的作用和使用方法。
- 章节内容:break语句、continue语句。
6. 循环结构的应用:通过实际案例,展示循环结构在程序设计中的应用。
C语言6-循环结构程序设计(update)
{ count = count + 1;
/* 循环体 */
printf ("Enter the No.%d=", count); scanf ("%d", &num); total = total + num; /* 计算累加和 */ }
printf("Total=%d\n", total); }
while语句-实例
{ int i=1, j;
/* i:行计数器 j:列计数器 */
while ( i <= 9 )
/* 控制打印表头 */
printf ( "%4d", i++ );
printf ("\n------------------------------------\n");
i=1; while ( i<= 9 )
行某程序段,直到循环条件不满足为止, 重复执行的程序称为循环体; • 循环结构有“当型”和“直到型”两种形 式;
6.2 用while语句设计循环结构程序
while 语句:
形式: while(表达式K) {循环体S(由若干语句组成)}
N
K
Y
S
功能:先判断条件,当条件为真时反复执行循环 体,条件为假则退出循环。
C语言程序设计
计算机学院
第六章 循环结构的程序设计
• 6.1 循环的基本概念 • 6.2 用while语句设计循环结构程序 • 6.3 用do_while语句设计循环结构程序 • 6.4 用for语句设计循环结构程序 • 6.5 Break语句及continue语句 • 6.6 几种循环语句的比较 • 6.7 循环的嵌套
C语言-循环结构程序设计
while循环
01
示例代码
02
```c
int i = 0;
03
while循环
while(i < 10) {
printf("%dn", i);
while循环
• i;
while循环
} ```
do-while循环
总结词
do-while循环是一种先执行循环体再检查条件的循环结构, 至少会执行一次循环体。
循环结构程序设计的重要性
提高代码复用性
通过使用循环结构,可以将重复 执行的代码块抽象出来,减少代
码冗余,提高代码复用性。
简化复杂问题
对于一些复杂的问题,使用循环 结构可以简化问题的解决过程, 提高代码的可读性和可维护性。
提高程序效率
循环结构可以减少重复计算和 操作,提高程序的执行效率。
实现迭代算法
03
避免在循环条件中直接使用赋值语句,以免造成无 限循环或死循环。
05
循环结构与其他结构的结合使用
循环结构与条件结构的结合
循环结构与if条件结构的结合
在循环体内使用if条件语句,根据条件判断是否执行某段代码。
while循环与if条件结构的结合
在while循环中嵌套if条件语句,根据条件判断是否继续循环。
发生。
循环变量的初始化与更新
确保循环变量在使用之前已经初始化,以避免 未定义的行为。
在循环体内更新循环变量的值,以确保循环能 够正常结束。
使用合适的类型和范围来声明循环变量,以避 免溢出或越界的问题。
循环条件的设定与修改
01
根据实际需求合理设定循环条件,确保循环能够正 确执行。
02
在循环体内适时修改循环条件,以控制循环的次数 和流程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不成立
ch!=EOF?
成立
字符计数nc=nc+1
不成立
ch==’\n’?
成立
行计数 nl=nl+1
§6.2 while语句-实例
循环嵌套
在循环体中,又包含有循环语句,构成循环嵌套。
例C3_5107.C:输出下三角形乘法九九表。
123456789
---------------------------------------
if ( n >= 3 )
break;
/* 退出for循环 */
else printf ("\nInput n is error !\n");
}
/* 控制输入正确的N值 */
un = un2 = 1;
/* 设置递推初始值 */
for ( i=3; i<=n; i++) /* 用递推法计算第N项的值 */
putchar ( ch ); ch = getchar( ); } }
开始
ch=读入一个字符
ch!=’a’?
成立
显示ch
不成立
ch=读入下一个字符
结束
§6.2 while语句-实例
例C3_5104.C:对输入的行和字符进行计数。
分析:\n 作为行结束标记的,DOS中有[CTRL+Z]作为文件结束
显示ch
while (ch!=’a’) { putchar( ch );
ch=读入下一个字符
ch = getchar( ); }
结束
§6.2 while语句-实例
#include <stdio.h> main( ) { char ch;
ch = getchar( ); while ( ch!='a') {
C语言中控制循环的语句:
while for do-while
§6.2 while语句
while语句格式 while ( 表达式 ) 语句;
说明:语句可是简单语句,也可是复合语句。 while语句的执行流程
表达式?
成立
执行语句
不成立
循环控制条件 循环体
执行while循环之后的语句
§6.2 while语句-实例
则:第 i 行中一共要输出 i 个乘积
§6.2 while语句-实例
#include <stdio.h>
例C3_5107
main ( )
{ int i=1, j;
/* i:行计数器 j:列计数器 */
while ( i <= 9 )
/* 控制打印表头 */
printf ( "%4d", i++ );
§6.2 while语句-实例
例C3_5103.C:从键盘中读入一系列字符,直到读入字母 a 时 才停止。
分析:由于不知道要读入的字符 数量,只知停止条件是读入字母 a,则只能将循环控制条件设为
开始 ch=读入一个字符
ch!='a'。 程序主体:
ch!=’a’?
成立
不成立
ch = getchar( );
}
}
for语句最常用的形式 for (初值;控制条件;增量) 语句;
§6.3 for语句-实例
例C3_5202.C:用for语句实现打印乘法九九表。
#include <stdio.h>
例C3_5202
main ( )
{ int i, j;
for ( i=1; i<10; i++ )
printf ("%4d",i);
for语句的执行流程
执行表达式1
表达式2?
成立
执行语句
不成立
执行表达式3
执行for循环之后的语句
循环初始条件
循环控制条件
循环体 for语句等价于下列语句:
表达式1; while (表达式2) { 语句;
表达式3; }
§6.3 for语句-实例
例C3_5203.C:求1到10的阶乘。
例C3_5203
标记 #define EOF -1
定义文件结束标记
#include <stdio.h>
main ( )
{ int c, nl=0, nc=0;
nl行计数器,nc字符计数器
while ( ( c = getchar( ) ) != EOF )
{ ++ nc;
进行字符计数
if ( c == '\n' )
}
输出函数printf中使用了“?”操作,含义相当于:
if ( j==i ) printf ("%4d\n", i*j );
else
printf ("%4d", i*j );
for语句的变化形式
§6.3 for语句
for语句中的三个表达式中的任意一个都是可以省略的, 但是分号不能省略。
1.省略表达式2,则: for(表达式1; ;表达式3)
老师:让我们换一个角度来看待这些问题, 以上问题的实质是:将scanf函数重复执行N遍。
学生:对!好象是这么回事...... 老师:我们可以引出一个概念“循环”,简单而言:循
环就是不断反复地执行同一段程序。 学生:这就是我们今天要学的新东西?
§6.1 循环概念 循环
反复执行同一段程序,直到满足一定的 条件后才停止执行该段程序。
1
24
i=6
369 4 8 12 16
j=5
5 10 15 20 25 6 12 18 24 30 36
i*j
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
假设:行号为i
,列号为j
(1<=i<=9)
(1<=j<=i)
2.while (1) { .... } 由于循环的条件表达式恒等于 1, 所以不可能通过循环控制条件来结束循环体的执行,称为“死 循环”。
3.为了保证循环正常运行,应该特别注意: 循环控制条件 控制条件的初始状态(初始值) 循环体内部对控制条件的影响
§6.3 for语句
for语句格式 for (表达式1;表达式2;表达式3) 语句;
{ un1 = un2; un2 = un; un = un1 + un2;
}
printf ("No. %d is %d\n", n, un);
}
例C3_5204.C程序
un = un2 = 1; for (i=3; i<=n; i++) { un1 = un2;
un2 = un; un = un1 + un2; }
就会逐步长大,到了第2个月末就生出一对小兔子。 第3个月大兔子会继续生一对小兔子,而第2个月出生 的小兔子会逐步长大。第4个月时,第1月出生的兔子 继续生育,第2月出生的小兔子也可以生育一对小兔 子了,第3月出生的小兔子则逐步长大……
假设这些草原的兔子非常长寿,可以认为它们不 会死亡。请建立数学模型,计算 第N个月时,草原上 将会有多少对兔子?
递推公式: n! = 1
当 n=1 时
n! = (n-1)! * n
当 n>1 时
#include <stdio.h>
main ( )
{ long int n=1;
int i;
for ( i = 1; i <=10; i++ )
{ n = n * i;
/* 求N! */
printf ( "%2d!=%ld\n", i, n);
输出结果total
total += num
结束
§6.2 while语句-实例
#include <stdio.h>
例C3_5101
main ( )
{ int count,num,total;
/* count:计数器,num:输入的整数 */
count=0; total=0; /* total:存放累加和 */
就形成了一个死循环。
2.省略表达式1和表达式3,则:
for(;表达式2;)
等同于:
while( 表达式 )
据此结论:所有用while语句实现的循环都可以用for语 句实现。
3.表达式1、2、3全省略,则: for ( ; ; )
等同于:
while (1)
§6.3 for语句-实例
例C3_5204.C: 草原上有一对小兔子,它们刚出生后的第1个月
例C3_5101.C 从键盘输入10个整数,求这10个整数之
和。
开始
程序主体
累加器total=0 计数器count=0
while ( count<10 ) {
count++; scanf("%d", &num);
total += num; }
count<10?
成立
不成立
count=count+1 输入num
递推法是程序设计中最常用的方法之一,使用递推法必须有明 确的递推初始值和递推规则(递推公式)。
§6.3 for语句-实例
例C3_5204.C程序
例C3_5204
#include <stdio.h>
main( )
{ int n,i,un1,un2,un;
for ( ; ; )