《程序流程控制语句.ppt》由会员分享,可在线阅读,更多相关《程序流程控制语句.ppt(75页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章第四章 程序流程控制语句程序流程控制语句 C C语言的基本语句语言的基本语句 上机调试程序的方法上机调试程序的方法 基本的程序设计方法基本的程序设计方法 输出简单图形输出简单图形 穷举法穷举法本本 章章 要要 点点2第四章第四章 程序流程控制语句程序流程控制语句第一节第一节 C C语言语句概述语言语句概述第四章第四章第四章第四章第二节第二节 注释语句注释语句第四章第四章第四章第四章第三节第三节 复合语句复合语句第四章第四章第四章第四章第四节第四节 选择语句选择语句第五章第五章第五章第五章第五节第五节 循环语句循环语句第六章第六章第六章第六章第六节第六节 转移语句转移语句第六章第六章第六章
2、第六章第七节第七节 简单应用综合举例简单应用综合举例34-1 C4-1 C语言语句概述语言语句概述l按照按照C语言语句的语言语句的作用作用分类:分类:说明语句说明语句注释语句注释语句程序流程控制语句程序流程控制语句声明变量名称、数据类型及声明变量名称、数据类型及其存储属性的说明性语句其存储属性的说明性语句编程者对程序本身的解释编程者对程序本身的解释是是“可执行可执行”的语句,的语句,构成程序的主体构成程序的主体44-1 C4-1 C语言语句概述语言语句概述-语句分类语句分类选择语句选择语句if-elseswitchforwhiledo-while循环语句循环语句转移语句转移语句breakcon
3、tinuegotoreturn标号语句标号语句表达式语句表达式语句casedefault标号标号赋值表达式赋值表达式+分号分号(;)54-1 C4-1 C语言语句概述语言语句概述-语句分类语句分类l按照按照C语言语句的语言语句的功能功能分类:分类:控制语句控制语句 函数调用语句函数调用语句 表达式语句表达式语句 空语句空语句 复合语句复合语句控制程序的走向(流程)控制程序的走向(流程)由一个函数调用加一个分号由一个函数调用加一个分号赋值表达式加分号赋值表达式加分号只有一个分号只有一个分号 ;一对一对 括起来的语句序列括起来的语句序列64-1 C4-1 C语言语句概述语言语句概述-简单实例简单实
4、例#include main()/*简单程序实例简单程序实例 */*/int a=10,b=20,c;if(ba)c=a+b;printf(”%dn”,c);else ;控控制制语语句句表达式语句表达式语句复合语句复合语句函数调用语句函数调用语句空语句空语句说明语句说明语句注释语句注释语句C的语句以分号的语句以分号(;)结束结束74-2 4-2 注释语句注释语句l注释语句格式注释语句格式以以“/*/*”开头、以开头、以“*/*/”结尾的说明性文字结尾的说明性文字说明说明(注释注释)信息可以是中文,也可以是英文信息可以是中文,也可以是英文l注释语句的目的注释语句的目的备忘作用备忘作用增加程序的可
5、读性,便于编程者和其它程序增加程序的可读性,便于编程者和其它程序阅读者理解程序阅读者理解程序l注释语句的使用方法注释语句的使用方法 可以注释程序的可以注释程序的功能功能、变量的含义变量的含义、函数间、函数间接接口关系口关系、编程使用的、编程使用的算法算法和和技巧技巧等信息等信息84-24-2 注释语句注释语句-实例实例l实例实例#include stdio.hinclude stdio.hmain()main()printf(Hello!n);printf(Hello!n);/*/*printf(Thanks!n);printf(Thanks!n);*/*/l合法的注释合法的注释x=y+5;x
6、=y+5;/*/*x is integer number,xx is integer number,x是整型是整型 */*/x=10+x=10+/*/*合法的注释但不是好的注释合法的注释但不是好的注释 */*/5;5;l不合法的注释不合法的注释swiswi/*/*不能在标识符中间插入注释不能在标识符中间插入注释 */*/tch(c).tch(c)./*/*this is an outer commentthis is an outer comment x=y/a;x=y/a;/*/*注释不允许嵌套注释不允许嵌套 */*/*/*/94-3 4-3 复合语句复合语句l复合语句格式复合语句格式 用用
7、 和和 括起来的若干合法的括起来的若干合法的C C语句。语句。l复合语句的目的复合语句的目的语法上语法上等价等价于于单一单一语句。因此在语言中,语句。因此在语言中,凡是可以使用单一语句的地方,均可使用复凡是可以使用单一语句的地方,均可使用复合语句。合语句。明确层次关系明确层次关系l复合语句的使用方法复合语句的使用方法复合语句允许嵌套,且嵌套层次没有限制复合语句允许嵌套,且嵌套层次没有限制对于复合语句,右花括号对于复合语句,右花括号“”的后面不必的后面不必再跟一个分号(再跟一个分号(;)104-3 4-3 复合语句复合语句-实例实例l例例C3_3001.C:C3_3001.C:判断输入整数的正负
8、性和奇偶性。判断输入整数的正负性和奇偶性。1.1.main()main()2.2.int x;int x;3.3.printf(Enter a integer:);scanf(%d,&x);printf(Enter a integer:);scanf(%d,&x);4.4.if if(x!=0)(x!=0)5.5./*/*处理处理x x不等于不等于0 0的情况的情况*/*/6.6.ifif(x0)(x0)/*/*若若x x大于大于0 0成立成立*/*/7.7.x=x%2;x=x%2;/*/*则计算则计算x x除以除以2 2的余数的余数*/*/8.8.if(x=0)printf(”Is a pl
9、us even.n);if(x=0)printf(”Is a plus even.n);9.else printf(”Is a plus odd numbern);9.else printf(”Is a plus odd numbern);10.10.11.11.else else /*/*否则,处理否则,处理x x为负数的情况为负数的情况*/*/12.12.x=x%2;x=x%2;/*/*计算计算x x除以除以2 2的余数的余数*/*/13.13.if(x=0)printf(”Is a minus even.n);if(x=0)printf(”Is a minus even.n);14.el
10、se printf(”Is a minus odd numbern);14.else printf(”Is a minus odd numbern);15.15.16.16.17.17.elseelse printf(This integer is zero.n);printf(This integer is zero.n);18.18.114-4 4-4 选择语句选择语句l提出问题提出问题l二重分支的条件语句二重分支的条件语句 ifl多多重分支的条件语句重分支的条件语句 switch根据学生分数判断是否及格?根据学生分数判断是否及格?根据学生分数如何进行分级?根据学生分数如何进行分级?如何解
11、决如何解决?自然语言:自然语言:如果如果 那么那么 否则否则C语言:语言:分支语句分支语句124-4-1 4-4-1 选择语句选择语句-ifif语句语句lif语句格式语句格式 格式格式1 1:ifif (表达式表达式)语句语句;格式格式2 2:ifif (表达式表达式)语句语句1 1;elseelse 语句语句2 2;lifif语句的执行流程语句的执行流程流程流程1 1:流程流程2 2:表达式表达式执行语句执行语句成立成立不成立不成立表达式表达式执行语句执行语句2执行语句执行语句1成立成立不成立不成立分支条件分支条件134-4-1 4-4-1 选择语句选择语句-ifif语句语句l 例例C3_4
12、101.CC3_4101.C:求求a a和和b b两数中较大的一个。两数中较大的一个。#include include main()main()/*/*程序功能:求程序功能:求a a和和b b的最大值的最大值*/*/int a,b,max;int a,b,max;printf(Input a and b=);printf(Input a and b=);scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);/*input number a and b*/*input number a and b*/if if(ab ab)max=amax=a;/*/*如果如果abab,则将则
13、将a=max*/a=max*/elseelse max=b;max=b;/*/*否则,否则,b=max*/b=max*/printf(The max of a and b:%dn,max);printf(The max of a and b:%dn,max);ab?max=bmax=a成立成立不成立不成立例例例例C3_4101C3_4101C3_4101C3_4101ifif语句中进行条件判断语句中进行条件判断的的“表达式表达式”必须用必须用()括起来且不可省略括起来且不可省略144-4-1 4-4-1 选择语句选择语句-ifif语句语句l 例例C3_4101.CC3_4101.C:求求a a
14、和和b b两数中较大的一个。两数中较大的一个。#include include main()main()/*/*程序功能:求程序功能:求a a和和b b的最大值的最大值*/*/int a,b,max;int a,b,max;printf(Input a and b=);printf(Input a and b=);scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);max=a;max=a;if if (maxbmaxb )max=bmax=b;printf(The max of a and b:%dn,max);printf(The max of a and b:%dn,m
15、ax);例例例例C3_41011C3_41011C3_41011C3_41011以上两个程序等价以上两个程序等价maxbmax=b成立成立不成立不成立154-4-1 4-4-1 选择语句选择语句-ifif语句语句l 例例C3_4102.CC3_4102.C:从键盘输入被除数从键盘输入被除数a a和除数和除数b b,求商。求商。main()main()int a,b;int a,b;printf(Enter two numbers:);printf(Enter two numbers:);scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);if if (b!=0)(b!=0)
16、printf(%dn,a/b);printf(%dn,a/b);else else printfprintf(cannot divide by zero.n);(cannot divide by zero.n);b?printf.printf.非非 00ifif(b b)printf(%dn,a/b);printf(%dn,a/b);elseelse printfprintf(”error.n);(”error.n);等价!等价!164-4-1 4-4-1 选择语句选择语句-ifif语句语句lifif语句嵌套语句嵌套义:义:在在ifif语句的语句的“语句语句1 1”或或“语句语句2”2”中又包
17、含着中又包含着ifif语句语句例例C3_4103.CC3_4103.C:比较两个整数的之间的关系(大小比较两个整数的之间的关系(大小/相等)。相等)。#include include main()main()int x,y;int x,y;printf(Enter integer X and Y:);printf(Enter integer X and Y:);scanf(%d%d,&x,&y);scanf(%d%d,&x,&y);ifif(x!=y)(x!=y)ifif(x y)(x y)printfprintf(XYn);(XYn);elseelse printfprintf(XYn);(
18、Xb)if(ab)/*/*1 1*/*/if(ac)if(ac)/*/*2 2*/*/if(ad)flag=1;if(ad)flag=1;/*/*3 3*/*/else flag=2;else flag=2;/*/*4 4*/*/else flag=3;else flag=3;/*/*5 5*/*/问题:问题:第四行和第五行的第四行和第五行的elseelse语句与哪一个语句与哪一个ifif语句语句相匹配呢相匹配呢?分析:分析:匹配方案可以有很多种匹配方案可以有很多种,(2-4,1-5),(3-4,2-,(2-4,1-5),(3-4,2-5),(1-4,)5),(1-4,)l匹配规则匹配规则:在
19、嵌套的:在嵌套的if-elseif-else语句语句中,中,elseelse子子句总是与句总是与上面的上面的、离它最近的离它最近的、且、且在同一复在同一复合语句中还没有配对的合语句中还没有配对的ifif子子语配对。语配对。184-4-1 4-4-1 选择语句选择语句-ifif语句语句1 1、ifif(ab)(ab)ifif(ac)(ac)if (ad)flag=1;if (ad)flag=1;else flag=2;else flag=2;elseelse flag=3;flag=3;程序含义:当程序含义:当 c c=a ab b 时,时,flag=3flag=32 2、if if(ab)(a
20、b)ifif(ac)(ac)if(ad)flag=1;if(ad)flag=1;else else flag=2;flag=2;/*/*以上是一个完整的以上是一个完整的复合复合语句语句*/*/elseelse flag=3;flag=3;程序含义:当程序含义:当 a=b a=b 时,时,flag=3flag=3 194-4-1 4-4-1 选择语句选择语句-ifif语句语句3 3、if(a=b)if(a=b)if(b=c)printf(a=b=cn);if(b=c)printf(a=b=cn);else printf(”a!=bn”);else printf(”a!=bn”);尽管尽管书写书写
21、格式如此,真实的格式如此,真实的正确正确的含义是:的含义是:ifif(a=b)(a=b)ifif(b=c)printf(a=b=cn);(b=c)printf(a=b=cn);elseelse printf(a!=bn”);printf(a!=bn”);通过加通过加 ,可以改变配对关系:可以改变配对关系:ifif(a=b)(a=b)ifif(b=c)printf(a=b=cn);(b=c)printf(a=b=cn);elseelse printf(”a!=bn”);printf(”a!=bn”);204-4-1 4-4-1 选择语句选择语句-ifif语句语句l例例C3_4104.CC3_41
22、04.C:已知银行整存整取存款月息利已知银行整存整取存款月息利率分别为率分别为:一年期:一年期:0.63%0.63%二年期:二年期:0.66%0.66%三年期:三年期:0.69%0.69%五年期:五年期:0.75%0.75%八年期:八年期:0.84%0.84%其它:其它:0 0 要求输入存钱的本金和期限,求到期时利息要求输入存钱的本金和期限,求到期时利息与本金合计。银行到期利息计算公式:与本金合计。银行到期利息计算公式:利息本金利息本金月息利率月息利率1212存款年限存款年限 程序中应当根据存款的年限确定利率程序中应当根据存款的年限确定利率214-4-1 4-4-1 选择语句选择语句-ifif
23、语句语句#include include main()main()int year;int year;float money,rate,total;float money,rate,total;/*/*本金,月利率,本利合计本金,月利率,本利合计*/*/printf(Input money and year=?);printf(Input money and year=?);scanf(%f%d,&money,&year);scanf(%f%d,&money,&year);/*/*输入本金和年限输入本金和年限*/*/ifif(year=1)rate=0.0063;(year=1)rate=0.
24、0063;/*/*根据年限定利率根据年限定利率*/*/else else ifif(year=2)rate=0.0066;(year=2)rate=0.0066;elseelse ifif(year=3)rate=0.0069;(year=3)rate=0.0069;elseelse ifif(year=5)rate=0.0075;(year=5)rate=0.0075;elseelse ifif(year=8)rate=0.0084;(year=8)rate=0.0084;elseelse rate=0.0;rate=0.0;total=money+money*rate*12*year;to
25、tal=money+money*rate*12*year;printf(Total=%.2fn,total);printf(Total=%.2fn,total);224-4-1 4-4-1 选择语句选择语句-ifif语句语句l采用采用if-else ifif-else if结构改写。结构改写。#include include main()main()int year;int year;float money,rate,total;float money,rate,total;/*/*本金,月利率,本利合计本金,月利率,本利合计*/*/printf(Input money and year=?)
26、;printf(Input money and year=?);scanf(%f%d,&money,&year);scanf(%f%d,&money,&year);/*/*输入本金和年限输入本金和年限*/*/ifif(year=1)rate=0.0063;(year=1)rate=0.0063;/*/*根据年限定利率根据年限定利率*/*/else else ifif(year=2)rate=0.0066;(year=2)rate=0.0066;elseelse if if(year=3)rate=0.0069;(year=3)rate=0.0069;elseelse ifif(year=5)r
27、ate=0.0075;(year=5)rate=0.0075;elseelse ifif(year=8)rate=0.0084;(year=8)rate=0.0084;else else rate=0.0;rate=0.0;total=money+money*rate*12*year;total=money+money*rate*12*year;printf(Total=%.2fn,total);printf(Total=%.2fn,total);234-4-1 4-4-1 选择语句选择语句-ifif语句语句l例例C3_4105.CC3_4105.C:通过键盘输入字符,将输入的字符分为通过键盘
28、输入字符,将输入的字符分为控控制制、数字数字、大写大写字母、字母、小写小写字母和字母和其他其他字符等五类。字符等五类。ASCIIASCII码表中的前码表中的前3232个字符为控制字符,个字符为控制字符,0 09 9为为数字数字,A AZ Z为大写字母为大写字母,a az z为小写字母,为小写字母,其其它它。#include include main()main()char c;char c;printf(Enter a character:);printf(Enter a character:);c=getch();c=getch();ifif(c0 x20c=c=0 0&c=&c=c=A A
29、&c=&c=(c=a a&c=&c=z z)printf(nIs a lower character.n);printf(nIs a lower character.n);else else printf printf(nIs a other character.n);(nIs a other character.n);例例例例C3_4105C3_4105C3_4105C3_4105244-4-1 4-4-1 选择语句选择语句-ifif语句语句lif语句与条件运算的关系语句与条件运算的关系l例:例:求一个数的绝对值求一个数的绝对值if (y0)x=-y;elsex=y;(y0)?x=-y:x=
30、y;等价等价等等价价x=(y0)?y:y;说明:说明:if elseif else可以完可以完成与条件运算符成与条件运算符(?:)完全相同的任务,并且完全相同的任务,并且可以进行相应的转换。可以进行相应的转换。254-4-1 4-4-1 选择语句选择语句-ifif语句语句lifif语句与条件运算的区别:语句与条件运算的区别:条件运算符形式比较简单,条件运算符形式比较简单,有较强的灵活性,可以替代部分有较强的灵活性,可以替代部分ifif语句。语句。l例:例:if (cans=1)printf(”You need 1 can of paint.”);else printf(”You need 2
31、cans of paint.”);转换:转换:(cans=1)?printf(”You need 1 can of paint.”):printf(”You need 2 cans of paint.”);转换:转换:printf(cans=1?”You need 1 can of paint.”:”You need 2 cans of paint.”);转换:转换:printf(”You need%d%s of paint.”,cans,cans=1?”can”:”cans”);可以在函数中方便地使用条件运算可以在函数中方便地使用条件运算264-4-2 4-4-2 选择语句选择语句-swit
32、chswitch语句语句lswitch语句格式语句格式 switch(switch(表达式表达式)casecase 常量常量1 1:语句序列语句序列1 1 breakbreak;casecase 常量常量2 2:语句序列语句序列2 2 breakbreak;default default:语句序列语句序列n+1n+1 执行语句序列序列1=常量常量1?计算计算表达式表达式的值的值相等相等不相等不相等break执行语句序列序列2=常量常量2?相等相等不相等不相等break执行语句序列序列n+1有有default?有有没有没有274-4-2 4-4-2 选择语句选择语句-switchswitch语句
33、语句switch(number)case 1:statement 1;break;case 2:statement 2;break;case 3:statement 3;break;default:statement 4;statement 5;当当number的值为的值为2时时284-4-2 4-4-2 选择语句选择语句-switchswitch语句语句lswitch语句使用注意事项语句使用注意事项1.1.switchswitch语句与语句与ifif语句不同,仅能判断一种关系:是否语句不同,仅能判断一种关系:是否恒等恒等。2.2.switchswitch语句中语句中casecase子句的子句
34、的常量常量可以是整型常量、字符型常量、可以是整型常量、字符型常量、枚举型数据,或是整型常量表达式,枚举型数据,或是整型常量表达式,不允许是变量不允许是变量。3.3.在在同一个同一个switchswitch中,中,casecase子句的子句的常量不能相同常量不能相同;在;在嵌套嵌套的的switchswitch语句中,不同层次的语句中,不同层次的switchswitch之间,可有相同的常量。之间,可有相同的常量。4.4.defaultdefault子句可以省略子句可以省略。5.5.case case 和和 default default 子句只能在子句只能在switchswitch语句中使用,且语
35、句中使用,且 casecase和和 default default 只起标号作用只起标号作用,可出现在,可出现在switchswitch中的任何位置。中的任何位置。6.6.casecase 和和 defaultdefault 子句后面的语句序列允许由多个可执行语子句后面的语句序列允许由多个可执行语句组成,且不必用句组成,且不必用“”括起来,也可以为括起来,也可以为空空语句。语句。7.7.switchswitch语句中语句中可省略可省略breakbreak语句语句,但省略后会改变流程。,但省略后会改变流程。294-4-2 4-4-2 选择语句选择语句-switchswitch语句语句l例例C3_
36、4104.CC3_4104.C:计算存款本利。采用计算存款本利。采用switchswitch改写。改写。#include include main()main()int year;int year;float money,rate,total;float money,rate,total;/*/*本金,月利率,本利合计本金,月利率,本利合计*/*/printf(Input money and year=?);printf(Input money and year=?);scanf(%f%d,&money,&year);scanf(%f%d,&money,&year);/*/*输入本金和年限输入
37、本金和年限*/*/switch switch(year)(year)/*/*根据年限定利率根据年限定利率*/*/case case 1 1:rate=0.0063;rate=0.0063;breakbreak;casecase 2 2:rate=0.0066;rate=0.0066;breakbreak;casecase 3 3:rate=0.0069;rate=0.0069;breakbreak;casecase 5 5:rate=0.0075;rate=0.0075;breakbreak;casecase 8 8:rate=0.0084;rate=0.0084;breakbreak;def
38、aultdefault:rate=0;rate=0;total=money+money*rate*12*year;total=money+money*rate*12*year;printf(Total=%.2fn,total);printf(Total=%.2fn,total);304-4-2 4-4-2 选择语句选择语句-switchswitch语句语句l例例C3_4203.CC3_4203.C:输入输入yearyear年份和月年份和月monthmonth,求该月天数。求该月天数。l如何判断闰年如何判断闰年?闰年:能够被闰年:能够被4 4整除整除且且不能不能被被100100整除整除的年份的年
39、份 或或 能够被能够被400400整除整除的年份的年份 例如:例如:19961996年、年、19801980年是年是闰年闰年 19701970年、年、19001900年是年是平年平年 2000 2000年是年是闰年闰年l判断闰年的判断闰年的C C语言公式语言公式year%4=0 year%4=0&year%100!=0 year%100!=0|year%400=0 year%400=0 当当year=year=19961996时,结果为时,结果为1 1 当当year=year=19971997时,结果为时,结果为0 0 当当year=year=19001900时,结果为时,结果为0 0 当当y
40、ear=year=20002000时,结果为时,结果为1 1 若为若为闰年闰年:结果为:结果为1若为若为平年平年:结果为:结果为0314-4-2 4-4-2 选择语句选择语句-switchswitch语句语句 main()main()int year,month,days;int year,month,days;scanf(%d%d,&year,&month);scanf(%d%d,&year,&month);switch switch(month)(month)casecase 1 1:case:case 3 3:case:case 5 5:case:case 7 7:casecase 8
41、8:case:case 1010:case:case 1212:/*/*处理处理“大大”月月*/*/days=31;days=31;breakbreak;case case 4 4:case:case 6 6:case:case 9 9:case:case 1111:/*/*处理处理“小小”月月*/*/days=30;days=30;breakbreak;case 2:case 2:/*/*处理处理“平平”月月*/*/ifif(year%4=0&year%100!=0|year%400=0)(year%4=0&year%100!=0|year%400=0)days=29;days=29;/*/
42、*如果是闰年如果是闰年*/*/elseelse days=28;days=28;/*/*不是闰年不是闰年 */*/breakbreak;default:default:/*/*月份错误月份错误*/*/printf(Input error!n);printf(Input error!n);days=0;days=0;ifif(days!=0)printf(”%d,%d is%ddaysn,year,month,days);(days!=0)printf(”%d,%d is%ddaysn,year,month,days);省略省略case子句之后的语句子句之后的语句324-4-2 4-4-2 选择
43、语句选择语句-switchswitch语句语句l省略省略breakbreak语句语句 例如:某程序段中,例如:某程序段中,errorerror是进行出错处理的函数。是进行出错处理的函数。flag=-1;/*error marker*/flag=-1;/*error marker*/switchswitch(i)(i)casecase 1:1:casecase 2:2:casecase 3:3:flag=0;/*no error*/flag=0;/*no error*/breakbreak;casecase 4:4:flag=1;/*error#1*/flag=1;/*error#1*/case
44、case 5:5:error(flag);/*error process*/error(flag);/*error process*/breakbreak;default:default:flag=2;/*other error*/flag=2;/*other error*/*/*假定函数假定函数errorerror是出错处理函数是出错处理函数*/*/当当 i=1i=1,2 2,3 3 时:时:flagflag=0=0;退出。退出。当当 i i=5=5 时:时:flag flag=-1=-1;调用调用erorr(flag)erorr(flag);退出。退出。当当 i=4 i=4 时:时:fla
45、g flag=1=1;调用调用 error(flag)error(flag);退出。退出。334-4-2 4-4-2 选择语句选择语句-switchswitch语句语句l例例C3_4202.CC3_4202.C:请编写一个程序计算表达式:请编写一个程序计算表达式:data1 data1 opop data2 data2的值。的值。main()main()float data1,data2;char op;float data1,data2;char op;/*/*定义操作数、操作符变量定义操作数、操作符变量*/*/printf(Enter your expression:);printf(En
46、ter your expression:);scanf(”%f%c%f”,&data1,&op,&data2);scanf(”%f%c%f”,&data1,&op,&data2);/*/*输入表达式输入表达式 */*/switchswitch(opop)/*/*根据操作符分别进行处理根据操作符分别进行处理*/*/casecase +:/*/*处理加法处理加法*/*/printf(%.2f+%.2f=%.2fn,data1,data2,data1+data2);printf(%.2f+%.2f=%.2fn,data1,data2,data1+data2);breakbreak;casecase
47、-:/*/*处理减法处理减法*/*/printf(%.2f-%.2f=%.2fn,data1,data2,data1-data2);printf(%.2f-%.2f=%.2fn,data1,data2,data1-data2);breakbreak;casecase *:/*/*处理乘法处理乘法*/*/printf(%.2f*%.2f=%.2fn,data1,data2,data1*data2);printf(%.2f*%.2f=%.2fn,data1,data2,data1*data2);breakbreak;casecase /:/*/*处理除法处理除法*/*/if if(data2(da
48、ta2=0)0)/*/*若除数为若除数为*/*/printf(Division by zero.n);printf(Division by zero.n);elseelse printf(%.2f/%.2f=%.2fn,data1,data2,data1/data2);printf(%.2f/%.2f=%.2fn,data1,data2,data1/data2);breakbreak;defaultdefault:/*/*输入其它运算符输入其它运算符*/*/printf(Unknown operater.n);printf(Unknown operater.n);例例例例C3_4202C3_4
49、202C3_4202C3_4202344-5 4-5 循环语句循环语句l提出问题提出问题提问:提问:从键盘上输入从键盘上输入10个整数并求和,怎么编程?个整数并求和,怎么编程?回答:回答:在程序中写入在程序中写入10个个scanf()语句。语句。提问:提问:从键盘上输入从键盘上输入500个整数并求和,怎么编程?个整数并求和,怎么编程?回答:回答:这个,嗯这个,嗯?不会让我写不会让我写500个个.老师:老师:让我们换一个角度来看待这些问题,让我们换一个角度来看待这些问题,以上问题的实质是:将以上问题的实质是:将scanfscanf函数重复执行函数重复执行N N遍。遍。学生:学生:对!好象是这么回
50、事对!好象是这么回事.老师:老师:我们可以引出一个概念我们可以引出一个概念“循环循环”,简单而言:,简单而言:循循环环就是不断就是不断反复地执行同一段程序。反复地执行同一段程序。学生:学生:这就是我们今天要学的新东西?这就是我们今天要学的新东西?354-5 4-5 循环语句循环语句l循环循环 反复执行同一段程序,直到满足反复执行同一段程序,直到满足一定的条件后才停止执行该段程序。一定的条件后才停止执行该段程序。lC语言中控制循环的语句:语言中控制循环的语句:while for do-while364-5-1 4-5-1 whilewhile语句语句lwhile语句格式语句格式while(whi