版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 4 章基本控制结构第第4 4章章 基本控制结构基本控制结构目目 录录应用举例程序设计应用举例程序设计4顺序结构程序设计顺序结构程序设计1选择结构程序设计选择结构程序设计2循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构C语言语句类型:语言语句类型: 1.表达式语句表达式语句 在一个表达式的后面加一个分号在一个表达式的后面加一个分号“;”就构成表达式语句就构成表达式语句 。例如:。例如:i=i+2 是表达式,而不是语句。是表达式,而不是语句。i=i+2 ; 是语句。是语句。 注:注:任何表达式都可以加上分号而成为语句任何表达式都可以加上分号而成为语句 2.函数调用语
2、句函数调用语句 在函数调用表达式后面加分号就构成了函数调用语句。例如:在函数调用表达式后面加分号就构成了函数调用语句。例如: printf (this is a c statement ); 3.控制语句控制语句C语言中共有语言中共有9种流程控制语句:种流程控制语句:if().else、for() 4.空语句空语句只有只有1个分号的语句称为空语句。如:个分号的语句称为空语句。如: ; 即是一个空语句,它什么也不做。即是一个空语句,它什么也不做。 5.复合语句复合语句 由一对大括弧由一对大括弧“”把若干语句括起来构成的语句称为复合语句把若干语句括起来构成的语句称为复合语句 。复合语句在语法上相当
3、于复合语句在语法上相当于1个单一语句,在一对花括号内的语句数量不限个单一语句,在一对花括号内的语句数量不限 。例如:例如: t=a; a=b; b=t; 顺序结构程序设计顺序结构程序设计1第第4 4章章 基本控制结构基本控制结构顺序结构程序的一般算法描述顺序结构程序的一般算法描述变量定义变量定义变量赋值变量赋值运算处理运算处理输出输出结果结果可用:可用: 变量初始化变量初始化 赋值语句赋值语句 输入函数调用语句输入函数调用语句顺序结构程序设计顺序结构程序设计1第第4 4章章 基本控制结构基本控制结构例例1:从键盘输入从键盘输入a、b的值,输出交换以后的值。的值,输出交换以后的值。 思路思路:交
4、换变量交换变量a和和b的值,不能只写下面两条赋值语句的值,不能只写下面两条赋值语句a=b ; b=a ; 正确的交换方法:正确的交换方法:c=a ; a=b ; b=c;顺序结构程序设计顺序结构程序设计1第第4 4章章 基本控制结构基本控制结构main( ) int a,b,c; printf(“输入输入 a, b: ); scanf(%d,%d,&a,&b); printf(“交换前交换前 :a=%d b=%dn,a,b); c=a; a=b; b=c; printf(“交换后交换后: a=%d b=%dn,a,b);程序运行情况如下:程序运行情况如下:输入输入 a, b:
5、32, 57 交换前交换前: a=32 b=57 交换后交换后: a=57 b=32 顺序结构程序设计顺序结构程序设计1第第4 4章章 基本控制结构基本控制结构例例2:已知三条边已知三条边a、b、c,求三角形面积。求三角形面积。 计算三角形面积的海伦公式:计算三角形面积的海伦公式: ) cs)(bs)(as ( sarea) cba (21s顺序结构程序设计顺序结构程序设计1第第4 4章章 基本控制结构基本控制结构#include math.hmain( ) int a,b,c; float s,area ; scanf(%d, %d, %d,&a,&b,&c); s
6、=1.0/2*(a+b+c) ; area = sqrt(s*(s-a)*(s-b)*(s-c) ; printf(area = %8.3f n,area) ;程序运行情况如下:程序运行情况如下:3,4,5 area = 6.000 顺序结构程序设计顺序结构程序设计1第第4 4章章 基本控制结构基本控制结构运行结果:运行结果: my my MY MY例例3 3:输入小写字母,输出大写字母。:输入小写字母,输出大写字母。#include main() char ch1,ch2; ch1=getchar( ); ch2=getchar( ); / /* * scanf(“%c%c”,&ch
7、1,&ch2); * */ / ch1=ch1-32; ch2=ch2-a+A; putchar(ch1); putchar(ch2); / /* * printf(“%c%c”, ch1, ch2); printf(“%c%c”, ch1, ch2); * */ /顺序结构程序设计顺序结构程序设计1第第4 4章章 基本控制结构基本控制结构运行结果:运行结果: 567 567 n=567,gw=7,sw=6,bw=5 n=567,gw=7,sw=6,bw=5例例4 4:数字分离。(输入一:数字分离。(输入一3 3位数,分别找出其个位、十位和百位)位数,分别找出其个位、十位和百位)#in
8、clude #include main()main() int n,gw,sw,bw; int n,gw,sw,bw; scanf(%d,&n); scanf(%d,&n); gw=n%10; gw=n%10; sw=(n/10)%10; sw=(n/10)%10; bw=n/100; bw=n/100; printf(n=%d,gw=%d,sw=%d,bw=%dn,n,gw,sw,bw); printf(n=%d,gw=%d,sw=%d,bw=%dn,n,gw,sw,bw); 顺序结构程序设计顺序结构程序设计1第第4 4章章 基本控制结构基本控制结构关系运算符和表达式关系运算
9、符和表达式关系运算符关系运算符n种类种类: = !=n结合方向:自左向右结合方向:自左向右n优先级别:优先级别:=!=优先级优先级6(高)(高)优先级优先级7(低)(低)关系表达式的值关系表达式的值:是逻辑值:是逻辑值“真真”或或“假假”,用,用1和和0表示表示选择结构程序设计选择结构程序设计2 例:例: ca+b/c(a+b) ab!=c/(ab)!=c a=bc/a=(bc/a=(bc) 例:例: int a=3,b=2,c=1,d,f;ab /表达式值表达式值1 (ab)=c /表达式值表达式值1d=ab /d=1f=abc /f=0第第4 4章章 基本控制结构基本控制结构逻辑运算符和表
10、达式逻辑运算符和表达式v逻辑运算符逻辑运算符l 种类:种类: ! & |l 逻辑运算真值表逻辑运算真值表C C语言中语言中, ,运算量运算量时时: : 0 0表示表示“假假”, ,非非0 0表示表示“真真”; ; 做为做为运算结果时运算结果时: : 0 0表示表示“假假”,1 1表示表示“真真”。 ab!a!ba&ba|b真真假假真真假假假假假假真真真真真真假假假假假假假假假假真真真真假假假假真真真真真真假假真真真真选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构l优先级优先级:l结合方向:结合方向:! :从右向左从右向左& :从左向右从左向右
11、| :从左向右从左向右(ab) & (xy) / ab & xy(a=b)|(x=y) / / a=b|x=y(!a)|(ab) / !a|ab 选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构F短路现象:短路现象:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例例 a&b&c /只在只在a为真时,才判别为真时,才判别b的值;的值; 只在只在a、b都为真
12、时,才判别都为真时,才判别 c的值的值例例 a|b|c /只在只在a为假时,才判别为假时,才判别b的值;的值; 只在只在a、b都为假时,才判别都为假时,才判别 c的值的值例例 a=1;b=2;c=3;d=4;m=1;n=1; (m=ab)&(n=cd) /结果结果m=0,n=1选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构1 1 标准标准if-elseif-else结构结构( (双分支结构双分支结构) )格式格式:if (表达式表达式) 语句语句 1 else 语句语句 2执行过程:执行过程:ifif语句的三种形式语句的三种形式表达式表达式语句语句 1语句语
13、句 2非非0=0if-elseif-else后续语句后续语句选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构例例1 1 键盘输入两个整数分别赋给键盘输入两个整数分别赋给x和和y,编程输出其中的大数。编程输出其中的大数。 main() int x,y; printf(Enter x & y: ); scanf(%d%d,&x,&y); printf(x=%d,y=%dn,x,y); if (xy) printf(max=x=%dn,x); / max=x; else printf(max=y=%dn,y); / max=y; ifif语句的三种形
14、式语句的三种形式选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构例例2 2 键盘输入一个实数,要求输出它的绝对值。键盘输入一个实数,要求输出它的绝对值。编写程序如下:编写程序如下:main()main() double x; double x; scanf( scanf(%lf%lf,&x);,&x); if (x0.0) if (x=90) printf(grade is A.n);if (score=90) printf(grade is A.n); else if (score=80) else if (score=80) printf(grad
15、e is B.n);printf(grade is B.n); else if (score=70) printf(grade is C.n); else if (score=70) printf(grade is C.n); else if (score=60) printf(grade is D.n); else if (score=60) printf(grade is D.n); else else printf(grade is E.n);printf(grade is E.n); if if语句的三种形式语句的三种形式选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基
16、本控制结构条件运算符和条件表达式n条件表达式条件表达式n一般形式:一般形式: 表达式表达式1 ? 表达式表达式2 : 表达式表达式3n执行过程:执行过程:n条件运算符条件运算符 ( ? : ) 条件运算符由两个运算符组成条件运算符由两个运算符组成 ,是是C语言提语言提供的唯一的三目运算符供的唯一的三目运算符 。表达式表达式1取取表达式表达式2值值取取表达式表达式3值值非非0=0选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构 说明:说明:(1)条件运算符优先于赋值运算,但低于逻辑运算、关系运算)条件运算符优先于赋值运算,但低于逻辑运算、关系运算和算术运算。和算术运算。
17、(2)条件运算符的结合方向为)条件运算符的结合方向为“自右至左自右至左”。 如如 x?a b xy ?1 15 条件运算符和条件表达式 如如 ad?c:d ad?c:d) (3)条件表达式中,表达式)条件表达式中,表达式1的类型可以与表达式的类型可以与表达式2和表达式和表达式3的类型不同。若不同取其中较高类型。的类型不同。若不同取其中较高类型。 选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构由条件表达式组成的赋值语句事实上就是一个由条件表达式组成的赋值语句事实上就是一个ififelseelse语句语句的简写。相当于:的简写。相当于:if(ab)max=a;elsem
18、ax=b;推广开来,若在推广开来,若在ififelseelse语句中,当表达式为语句中,当表达式为“真真”和和“假假”时,都只执行一个赋值语句且给同一个变量赋值时,均可以用简单时,都只执行一个赋值语句且给同一个变量赋值时,均可以用简单的条件运算符来处理。的条件运算符来处理。 max=ab?a:b;条件运算符和条件表达式选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构例例 4 输入一字符,若是大写字母,将其转换成小写字母;若不是则不输入一字符,若是大写字母,将其转换成小写字母;若不是则不转换转换,然后输出最后得到的字符。然后输出最后得到的字符。 程序如下:程序如下:ma
19、in()main() char ch;char ch; scanf(“%c”,&ch); scanf(“%c”,&ch); ch=(ch=A&ch=A&ch0)(x0) y= y=0 0(x=0)(x=0)-1-1(x0)(x0)选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构#include #include main()main() int x,y;int x,y;scanf(%d,&x);scanf(%d,&x);y=1;y=1;ifif(x=0)(x=0)ifif(x0)(x0)y=-1;y=-1;elseels
20、ey=0;y=0;printf(x=%d,y=%dn,x,y);printf(x=%d,y=%dn,x,y); #include #include main()main() int x,y;int x,y;scanf(%d,&x);scanf(%d,&x);y=1;y=1;ifif(x=0)(x=0) ifif(x=0) (x=0) y=0;y=0; elseelsey=-1;y=-1;printf(x=%d,y=%dn,x,y);printf(x=%d,y=%dn,x,y); #include #include main()main() int x,y;int x,y;sca
21、nf(%d,&x);scanf(%d,&x);y=1;y=1;ifif(x0)(x0)y=-1;y=-1;elseelseifif(x=0)(x=0)y=0;y=0;printf(x=%d,y=%dn,x,y);printf(x=%d,y=%dn,x,y); 第第4 4章章 基本控制结构基本控制结构例例 5 写程序,判断某一年是否闰年。写程序,判断某一年是否闰年。 闰年的条件是:闰年的条件是: 能被能被4整除,但不能被整除,但不能被100整除的年份都是闰年,整除的年份都是闰年,如如1996年,年,2004年是闰年;年是闰年; 或者:或者: 能被能被400整除的年份是闰年。如整除
22、的年份是闰年。如1600年、年、2000年是闰年。年是闰年。不符合这两个条件的年份不是闰年。不符合这两个条件的年份不是闰年。if语句应用举例选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构假设用整型变量假设用整型变量yearyear来代表年份,闰年条件概括为来代表年份,闰年条件概括为如下一个逻辑表达式:如下一个逻辑表达式:year%4=0 & year%100!=0 | year%400=0year%4=0 & year%100!=0 | year%400=0当这个逻辑表达式的值为当这个逻辑表达式的值为“真真”时,时,yearyear代表的年代表的年份
23、就是份就是闰年闰年;值为;值为“假假”时,时,yearyear代表的年份就代表的年份就不是闰年不是闰年。据此写出程序:据此写出程序:if语句应用举例选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构main( )main( ) int year; int year; scanf(%d,&year); scanf(%d,&year); if(year%4=0&year%100!=0|year%400=0)if(year%4=0&year%100!=0|year%400=0) printf(%d is a leap year!n,year);
24、printf(%d is a leap year!n,year); else else printf(%d is not a leap year!n,year);printf(%d is not a leap year!n,year); if语句应用举例选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构 Switch语句是多分支选择语句。用来实现多分支语句是多分支选择语句。用来实现多分支选择结构。选择结构。【格式格式】switch (switch (表达式表达式) ) casecase常量表达式常量表达式1 1:语句:语句1 1 casecase常量表达式常量表达式2
25、2:语句:语句2 2 casecase常量表达式常量表达式n n:语句语句n n default default: 语句语句 n n1 1 4.2.4 switch语句选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构说明:说明:(1)Switch 是关键字,其后内容用是关键字,其后内容用 定界。定界。(2)switch后的后的(表达式)(表达式)可为任何类型可为任何类型 ,且,且case后的后的常量常量表达式的类型表达式的类型应与表达式的类型应与表达式的类型相同相同。且各。且各case间的值也应间的值也应不同。不同。(3)case语句标号后的语句可以是一条语句,也可是
26、多条语句,语句标号后的语句可以是一条语句,也可是多条语句,可不用可不用 括起。括起。(4)每个)每个case仅是一个仅是一个入口标号入口标号,并不确定执行的终止点。如,并不确定执行的终止点。如无无break;语句则将一直执行到语句则将一直执行到switch的最后。的最后。注意注意break;语语句的作用句的作用。default 也是关键字,其可有可无,分析区别。也是关键字,其可有可无,分析区别。(5)可多个)可多个case语句共用一组执行语句。语句共用一组执行语句。(6)switch语句可嵌套。语句可嵌套。4.2.4 switch语句选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结
27、构基本控制结构例例6 6用用switchswitch改写上面的学生成绩等级题。改写上面的学生成绩等级题。90100分分 等级为等级为A;8089分分 等级为等级为B;7079分分 等级为等级为C;6069分分 等级为等级为D; 059分分 等级为等级为E。 试分析下列几种情况的运行结果:试分析下列几种情况的运行结果:4.2.4 switch语句选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构1 1、main()main() int score,grade;int score,grade;printf(Please input score:);printf(Please
28、 input score:);scanf(%d,&score);scanf(%d,&score);grade=score/10;grade=score/10;switch(grade)switch(grade) case 10:case 10: case 9: printf(grade An); case 9: printf(grade An); case 8: printf(grade Bn); case 8: printf(grade Bn); case 7: printf(grade Cn); case 7: printf(grade Cn); case 6: print
29、f(grade Dn); case 6: printf(grade Dn);case 5: case 5: case 4: case 4: case 3: case 3: case 2: case 2: case 1:case 1:case 0: printf(grade En);case 0: printf(grade En); 4.2.4 switch语句选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构4.2.4 switch语句2 2、main()main() int score,grade;int score,grade;printf(Please input
30、 score:);printf(Please input score:);scanf(%d,&score);scanf(%d,&score);grade=score/10;grade=score/10;switch(grade)switch(grade) case 10: case 10: case 9: printf(grade An); case 9: printf(grade An); case 8: printf(grade Bn); case 8: printf(grade Bn); break;break; case 7: printf(grade Cn); cas
31、e 7: printf(grade Cn); case 6: printf(grade Dn); case 6: printf(grade Dn); break;break; case 5: case 5: case 4: case 4: case 3: case 3: case 2: case 2: case 1: case 1: case 0: printf(grade En); case 0: printf(grade En); 选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构3 3、所有所有case case 后均加后均加 break; 语句语句case 10
32、:case 10:case 9: printf(grade An);case 9: printf(grade An);break;break;case 8: printf(grade Bn);case 8: printf(grade Bn);break;break;case 7: printf(grade Cn);case 7: printf(grade Cn);break;break;case 6: printf(grade Dn);case 6: printf(grade Dn);break;break;case 5: case 5: case 4: case 4: case 3: cas
33、e 3: case 2: case 2: case 1:case 1:case 0: printf(grade En);case 0: printf(grade En); break;break;选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构4、case 嵌套嵌套例例 main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,
34、a,b); 4.2.4 switch语句运行结果:运行结果:a=2,b=1选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构例例7:输入日期,判断这一天是该年的第几天?输入日期,判断这一天是该年的第几天? 程序分析:以程序分析:以3月月5日为例,应该先把前两个月的加起来,然日为例,应该先把前两个月的加起来,然后再加上后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。时需考虑多加一天。选择结构程序设计选择结构程序设计2第第4 4章章 基本控制结构基本控制结构#include main()int day
35、,month,year,sum; printf(n输入年输入年-月月-日:日:);scanf(%d-%d-%d,&year,&month,&day);switch(month) /*先计算某月以前月份的总天数先计算某月以前月份的总天数*/case 1:sum=0;break;case 2:sum=31; break;case 3:sum=59; break;case 4:sum=90; break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;cas
36、e 9:sum=243;break;case 10: sum=273;break;case 11: um=304; break;case 12: sum=334;break;default:printf(data error);break;sum=sum+day;/* 再加上某天的天数再加上某天的天数 */if(year%400=0|year%4=0&year%100!=0)&(month2)sum+; /*如果是闰年且月份大于如果是闰年且月份大于2,总天数应该加一天总天数应该加一天*/printf(It is the %dth day.n,sum);第第4 4章章 基本控制结
37、构基本控制结构循环结构循环结构是结构化程序设计的三种基本结构之一是结构化程序设计的三种基本结构之一C C语言可实现循环的语句:语言可实现循环的语句: 用用goto goto 和和 if if 构成循环(限制使用)构成循环(限制使用) while while 语句语句 do - while do - while 语句语句 for for 语句语句n按一定条件按一定条件重复执行重复执行某段程序即是循环。某段程序即是循环。循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构格式:格式:while(表达式表达式) 循环体语句;循环体语句;说明:说明:lWhileWhile后的后的
38、表达式,可为任意合法的表达式表达式,可为任意合法的表达式 l循环体可为循环体可为任意类型语句任意类型语句l若循环体内需要多个语句,应用若循环体内需要多个语句,应用复合语句复合语句形式形式 4.3.1 while 循环循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构执行过程执行过程:表达式表达式循环体循环体假假(0)真真(非非0)whileWhile后续语句后续语句4.3.1 while 循环循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构用法说明用法说明:当型循环结构,当型循环结构,先判断先判断表达式,表达式,后执行后执行循环体循环体循环体内
39、必须改变循环条件,使其趋于结束循环体内必须改变循环条件,使其趋于结束循环体有可能一次也不执行循环体有可能一次也不执行下列情况,下列情况,退出退出whilewhile循环循环条件条件表达式不成立表达式不成立(为零)(为零)循环体内循环体内遇遇breakbreak ,return,goto,return,goto无限循环无限循环: while (1)while (1) 循环体;循环体;此时应与此时应与break;break;配合使用,使循环结束。配合使用,使循环结束。4.3.1 while 循环循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构例例1 1:输出一行星号:输出
40、一行星号:* * * * * * (1) printf(“ (1) printf(“* * * * * *n”);n”); (2) (2) 用用printf(“printf(“* *”)”)时,可用循环完成。时,可用循环完成。main()main() int int i=1;i=1;/ i / i 称为称为循环变量循环变量,为其赋初值,为其赋初值 while(while(i=5i=5) )/ i5 / i5 称为称为循环条件循环条件,也称循环终值,也称循环终值 printf(“printf(“* *”);”);i+;i+;/ i+/ i+ 循环变量变化循环变量变化使循环条件使循环条件 / /
41、趋于假,使整个循环结束趋于假,使整个循环结束printf(“n”);printf(“n”); 循环结构程序设计循环结构程序设计34.3.1 while 循环第第4 4章章 基本控制结构基本控制结构S=0i=1i=1i=2S=1i=2S=31001nn例例2 用用while循环求循环求S=1+2=3 i=2+1=3 i=99+1=100 S=4950+100=5050S=0+1=1 i=1+1=2循环结构程序设计循环结构程序设计34.3.1 while 循环 S=0i=1第第4 4章章 基本控制结构基本控制结构 main() int i,s ; i=1; s =0; while(i=100) s
42、 =s +i; i+; printf(%d,s ); 循环初值循环初值循环条件循环条件循环变量增值循环变量增值循环结构程序设计循环结构程序设计3循环终值循环终值循环体循环体4.3.1 while 循环第第4 4章章 基本控制结构基本控制结构3 3、输出、输出100100以内奇数。要求:以内奇数。要求:每个数字占每个数字占4 4列且每行输出列且每行输出1010个数。个数。4 4、编程求:编程求: 1 12 2+2+22 2+3+32 2+n n2 2(n(n的值由键盘输入的值由键盘输入) )或求:或求:1 1* *2 2* *3 3* * *n,n,即即n! n! 5 5、求:求:100100以
43、内偶数和或以内偶数和或100100以内奇数和。以内奇数和。6 6、求、求 :或求:或求:991.51311 991.51311 循环结构程序设计循环结构程序设计34.3.1 while 循环第第4 4章章 基本控制结构基本控制结构格式:格式:dodo 循环体语句;循环体语句; while while ( (表达式表达式) ); ;说明:说明: dodo和和whilewhile联合使用联合使用 以以dodo开始、开始、whilewhile结束,结束,“;”不可丢不可丢 WhileWhile后的表达式,可为任意合法的表达式后的表达式,可为任意合法的表达式 循环体可为任意类型语句循环体可为任意类型语
44、句4.3.2 dowhile循环循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构执行流程执行流程: do循环体循环体表达式表达式假假(0)真真(非非0)while后续语句后续语句4.3.2 dowhile循环循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构注意:注意: 先执行先执行循环体,循环体,后判断后判断表达式表达式 循环体内必须改变循环条件,使其趋于结束循环体内必须改变循环条件,使其趋于结束 至少执行一次循环体至少执行一次循环体 do - while do - while可转化成可转化成whilewhile结构结构4.3.2 dowhi
45、le循环循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构main() int i,sum=0; i=1; do sum+=i;i+; while(i=100) ; printf(%d,sum);1001nn例例 用用do-while循环求循环求4.3.2 dowhile循环循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构例例 while while 和和 do-while do-while 循环的比较循环的比较 main ( ) int sum=0,i; scanf(%d,&i); while (i=10) sum=sum+i; i+
46、; printf(sum=%dn,sum); main ( ) int sum=0,i; scanf(%d,&i); do sum=sum+i; i+; w h i l e ( i = 1 0 ) ; printf(sum=%dn,sum);循环体循环体内必须内必须改变循改变循环条件环条件表达式表达式值是否值是否为真为真循环前的循环前的初始值初始值4.3.2 dowhile循环循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构格式:格式:for ( 表达式表达式1 ; 表达式表达式2 ; 表达式表达式3 ) 循环体语句;循环体语句;说明:说明: for语句中语句
47、中三个三个表达式表达式类型任意,都可省略类型任意,都可省略,但分号,但分号 “ ;”不可省不可省 无限循环无限循环: for( ; ; ) for语句可以转换成语句可以转换成while结构结构 循环体语句可以是一条语句,也可以是复合语句。循环体语句可以是一条语句,也可以是复合语句。4.3.3 for循环循环循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构执行流程图:执行流程图:表达式表达式2循环体循环体假假(0)真真(非非0)for表达式表达式1表达式表达式3循环结构程序设计循环结构程序设计34.3.3 for循环循环第第4 4章章 基本控制结构基本控制结构1001n
48、n例例 用用for循环求循环求 main() int i,sum; sum=0; for(i=1;i=100;i+) sum+=i; printf (“sum=%d,sum); 表达式表达式1 1;while(表达式表达式2) 循环体语句;循环体语句; 表达式表达式3;循环结构程序设计循环结构程序设计34.3.3 for循环循环第第4 4章章 基本控制结构基本控制结构 一般应用形式一般应用形式:forfor( ( 循环变量赋循环变量赋初值;循环条件;初值;循环条件;循环变量循环变量增值增值 ) ) 循环体语句;循环体语句; 4.3.3 for循环循环循环结构程序设计循环结构程序设计3第第4 4
49、章章 基本控制结构基本控制结构分析如下程序:分析如下程序:main( ) int i; for (i=0;i10;i+) printf(“*”); main( ) int i=0; for( ;i10;i+) printf(“*”); main( ) int i; for(i =0;i10;) printf(“*”); i+; main( ) int i=0; for(;i10;) printf(“*”); i +; main( ) int i=0; for( ; i10 ; printf(“*”) , i+ ) ; 循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构
50、三种循环三种循环可以互相代替可以互相代替 循环变量初始化的位置循环变量初始化的位置 控制控制循环变量改变循环变量改变,使循环趋于结束,使循环趋于结束 循环体循环体都可以使用都可以使用复合语句复合语句 可以用可以用breakbreak语句语句跳出循环跳出循环,用,用continuecontinue语句结语句结束本次循环束本次循环 三种循环的比较说明 循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构循环的嵌套循环的嵌套v三种循环可互相嵌套三种循环可互相嵌套, ,层数不限层数不限, ,设置不同循环变量设置不同循环变量v外层循环可包含两个以上内循环外层循环可包含两个以上内循环
51、, ,但不能相互交叉但不能相互交叉v嵌套循环的执行流程嵌套循环的执行流程4.3.4 循环的嵌套循环的嵌套(1) while( ) while( ) (2) do do while( ); while( );(3) for( ; ; ) for( ; ; ) (4) while( ) do while( ); (5) for( ; ; ) while( ) (6) do for ( ; ; ) while( );v二重循环的结构二重循环的结构( (forfor语句语句) ) forfor(表达式(表达式1 1;表达式;表达式2 2;表达式;表达式3 3) 语句语句1 1; forfor(表达式(
52、表达式4 4;表达式;表达式5 5;表达式;表达式6 6) 语句语句2 2; 语句语句3 3; 循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构概念概念在一个循环的循环体中,又包含另外的在一个循环的循环体中,又包含另外的循环循环(多重循环多重循环)。如:如: for(i=0;i2;i+) for(j=0;j3;j+) printf(%d,%dn,i,j); 4.3.4 循环的嵌套循环的嵌套循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构执行流程执行流程例例 写出下列程序的运行结果。写出下列程序的运行结果。main()int i,j; for(
53、i=0;i2;i+) for(j=0;j3;j+) printf(%d,%dn,i,j); printf(*n); 循环结构程序设计循环结构程序设计3则运行结果为:则运行结果为:0,00,10,2*1,01,11,2*第第4 4章章 基本控制结构基本控制结构例例1 1 使用双层使用双层forfor循环打印下面的图形循环打印下面的图形 * * * * *main( ) int i,j,k; for(i=0;i=4;i+) for(k=1;k=i;k+) printf(); for(j=0;j=4;j+) printf(*); printf(n); 内循环内循环外循环外循环4.3.4 循环的嵌套循
54、环的嵌套循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构2、输出如下图形:、输出如下图形: * * 1 a * * 222 bbb * * 33333 ccccc * * 4444444 ddddddd3、输出九九乘法表、输出九九乘法表循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构 读程序写结果:读程序写结果:main()main() int i,j;int i,j;for(i=1;i=4;i+)for(i=1;i=4;i+) for(j=1;j=2for(j=1;j=2* *i-1;j+)i-1;j+)printf(“%d”,i);pri
55、ntf(“%d”,i);printf(“n”);printf(“n”); 循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构格式:格式: break break;说明:说明:在循环语句和在循环语句和switchswitch语句中语句中, ,终止并跳出循环终止并跳出循环体或开关体体或开关体breakbreak只能只能终止并跳出终止并跳出最近一层最近一层的结构的结构breakbreak不能用于循环语句和不能用于循环语句和switchswitch语句之外的语句之外的任何其它语句之中任何其它语句之中4.3.5 break和和continue循环结构程序设计循环结构程序设计3第第
56、4 4章章 基本控制结构基本控制结构 break的流程控制的流程控制:dobreak;.expr假假(0)真真(非非0)while表达式表达式break;假假(0)真真(非非0)while表达式表达式2break;.假假(0)真真(非非0)for表达式表达式1表达式表达式34.3.5 break和和continue循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构例例 使用使用break语句跳出循环体语句跳出循环体 main() int i; float area; for(i=1;i100) break; printf(i=%d,area=%.2fn,i,area);
57、 运行结果:运行结果:i=6 ,area=113.044.3.5 break和和continue循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构例例 for(i=1;i3) break; printf(%d,i); 4.3.5 break和和continue循环结构程序设计循环结构程序设计3则运行结果为则运行结果为: :1,2,3,1,2,3,第第4 4章章 基本控制结构基本控制结构格式格式: continuecontinue;说明:说明:结束本次循环,跳过结束本次循环,跳过循环体中循环体中尚未执行的语句,尚未执行的语句,进行下一次是否执行循环体的判断进行下一次是否执
58、行循环体的判断仅用于循环语句中仅用于循环语句中4.3.5 break和和continue循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构continue的流程控制的流程控制:真真(非非0)docontinue;.表达式表达式假假(0)while表达式表达式continue;假假(0)真真(非非0)while表达式表达式2continue;.假假(0)真真(非非0)for表达式表达式1表达式表达式34.3.5 break和和continue循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构如如 for(i=1;i=5;i+) if(i=2) co
59、ntinue; printf(%d,i); 循环结构程序设计循环结构程序设计3则运行结果为则运行结果为: :3,4,5,3,4,5,4.3.5 break和和continue第第4 4章章 基本控制结构基本控制结构例例 输出输出0100之间的偶数之间的偶数 main()main() int x; int x; for(x=0;x=100;x+) for(x=0;x=100;x+) if(x%2=1) if(x%2=1) printf(%d ,x); printf(%d ,x); continuecontinue语句语句后只终止本次循后只终止本次循环环; ; breakbreak语句后将语句后将
60、无条件地结束整无条件地结束整个循环个循环4.3.5 break和和continue循环结构程序设计循环结构程序设计3第第4 4章章 基本控制结构基本控制结构例例1 求求Fibonacci数列:数列:1,1,2,3,5,8,的前的前40个数个数,每行输出每行输出5个数。个数。 f1=1 (n=1)f2=1 (n=2)fn=fn-1+fn-2 (n3) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 022887 9227465 14930352 24157817 39088169 63245986 102334155循环结构程序设计循环结构程序设计34.3.6 循环举例循环举例第第4 4章章 基本控制结构基本控制结构 位置号:位置号: 1 2 3 4 5 6 7 数列:数列: 1 1 2 3 5 8 13 第第4 4次循环次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026安徽阜阳职业技术学院第一批招聘15人备考题库带答案详解
- 2026广东深圳市福田区黄埔雅苑幼儿园招聘教职员工1人备考题库完整参考答案详解
- 宜宾2025年宜宾市翠屏区事业单位上半年第二批考核招聘39人笔试历年参考题库附带答案详解
- 宁德2025年宁德市蕉城区教育局下属事业单位招聘紧缺急需人才笔试历年参考题库附带答案详解
- 2026四川广元市特种设备监督检验所第一批检验检测人员招聘7人备考题库及答案详解一套
- 2026天津市静海区所属部分国有企业面向社会招聘8人备考题库及答案详解一套
- 吉林2025年吉林市昌邑区事业单位招聘33名入伍高校毕业生(2号)笔试历年参考题库附带答案详解
- 南通2025年江苏南通市通州区事业单位招聘45人笔试历年参考题库附带答案详解
- 北京中国专利信息中心2025年第二批招聘13名社会在职人员笔试历年参考题库附带答案详解
- 北京2025年北京市体育科学研究所招聘工作人员笔试历年参考题库附带答案详解
- 大仲马课件教学课件
- 2026年餐饮企业税务合规培训课件与发票管理风控方案
- 2025至2030尿素硝酸铵(UAN)行业产业运行态势及投资规划深度研究报告
- 集团公司年度经营状况分析报告
- 2025蜀道集团下属四川金通工程试验检测有限公司招聘18人考试参考题库附答案解析(夺冠)
- 2025年及未来5年市场数据中国蓖麻油行业投资潜力分析及行业发展趋势报告
- 浙江省台金七校联盟2025-2026学年高一上学期11月期中联考语文试题含答案
- 汽车网络与新媒体营销 教案 项目5-8 汽车直播营销-汽车网络与新媒体营销综合技能
- 2025年热科院笔试试题及答案
- T-CSF 0114-2025 城市绿地植物物种多样性评价规范
- 造价咨询方案的指导思想
评论
0/150
提交评论