第三章 条件分支语句.ppt

上传人:hyn****60 文档编号:83088882 上传时间:2023-03-28 格式:PPT 页数:35 大小:1.60MB
返回 下载 相关 举报
第三章 条件分支语句.ppt_第1页
第1页 / 共35页
第三章 条件分支语句.ppt_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《第三章 条件分支语句.ppt》由会员分享,可在线阅读,更多相关《第三章 条件分支语句.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、永城职业学院 彭勃第三章 条件分支语句永城职业学院 彭勃不能不能上菜上菜有胡萝卜吗?有黄瓜吗?制作胡萝卜沙拉有条件分支结构有可以可以上菜上菜制作黄瓜沙拉制作黄瓜沙拉没有没有开始做黄瓜沙拉做胡萝卜沙拉有没有不能不能上菜上菜可以可以上菜上菜是否有胡萝卜有没有是否有黄瓜?结束2永城职业学院 彭勃if 语句qif 语句是基本的条件分支语句,在满足某条件时,执行一行或多行代码;当条件没有得到满足时,将执行 else 关键字后面的代码。if 语句中的 else 子句是可选的。qif 语句的基本语法如下所示:if(condition)/条件满足时执行的代码或者,添加可选的 else 子句:if(condit

2、ion)/条件满足时执行的代码else /条件不满足时执行的代码condition块语句1NOYES块语句2condition块语句NOYES3永城职业学院 彭勃if 语句q同循环语句一样,如果 if 或(可选的)else 关键字后面只有一行执行语句,则可省略大括号:/前面略.if(condition)如果真时执行的单行语句;else 如果假时执行的单行语句;4永城职业学院 彭勃if 例子q编写程序,根据学生成绩给出相应的评价,大于或等于 60 分以上的评价为“及格”,60 分以下的评价为“不及格”。#include main()int grade;grade=74;if(grade=60)p

3、rintf(“Pass!n”);else printf(“Sorry!You are failed!n”);getch();5永城职业学院 彭勃嵌套 if 语句q同其它流程控制语句一样,if 语句也可以嵌套。q可以使用嵌套的 if-else 构造来测试多个条件。if(condition1)/执行这些代码else if(condition2)/执行另外的代码 else /如果不满足上述条件 /则执行这些代码 两层嵌套的 if else 构造基本语法如下所示:condition2块语句2NOYES块语句3condition1块语句1YESNO6永城职业学院 彭勃嵌套 if 语句if(conditi

4、on1)/执行这些代码else if(condition2)/执行另外的代码 else /如果不满足上述条件 /则执行这些代码 if(condition1)/执行这些代码else if(else if(condition2condition2)/执行另外的代码else /如果不满足上述条件 /则执行这些代码左例的嵌套 if 语句也可以用另一种“写法”实现:多重 if 写法7永城职业学院 彭勃嵌套 if 例子q细化刚才的程序,根据学生成绩给出相应的等级,大于或等于 90 分以上的等级为 A,60 分以下的等级为 E,其余每 10 分为一个等级。int grade=74;if(grade=90)p

5、rintf(“An”);else if(grade=80)printf(“Bn”);else if(grade=70)printf(“Cn”);else if(grade=60)printf(“Dn”);else printf(“En”);int grade;grade=74;if(grade=90)printf(“An”);else if(grade=80)printf(“Bn”);else if(grade=70)printf(“Cn”);else if(grade=60)printf(“Dn”);else printf(“En”);多重 if 写法注意:else 子句总是与前面最近的不带

6、 esle 的 if 相结合,与书写格式无关。8永城职业学院 彭勃需要注意的q在测试是否相等时,要记得使用两个连续的等于号:if(x=3)/if(x=3)/注意使用双等于号(=)(=)判断是否相等y=x;C 初学者常犯的错误是使用单个等于号测试是否相等:if(x=3).x=3 不是逻辑表达式,而是赋值表达式。9永城职业学院 彭勃思考题q为表示关系:xyz,应使用的 C 语言表达式是 ()A)(x=y)&(y=z)B)(x=y)AND(y=z)C)(x=y=z)D)(x=y)&(y=z)q有以下程序:#include main()int a,b,s;scanf(“%d%d”,&a,&b);s=a

7、;if(a b)s=b;s*=s;printf(“%dn”,s);若执行以上程序时从键盘上输入 3 和 4,则输出结果是()A)14B)16C)18D)2010永城职业学院 彭勃课后作业q有以下程序段:int a=2,b=1,c=2;if(a b)if(b 0)y=1;else y=0;其能正确表示的数学函数关系是()A)B)C)D)q复习课本 P69P79 的 4.1 4.4 节q预习课本 P79P88 的 4.5 节11永城职业学院 彭勃上机练习qFTP if-else、if-else-if 练习qP69 P78,例 1 例 612永城职业学院 彭勃条件运算符q前面介绍了使用 C 语言中的

8、 if 语句来构成程序中的条件分支结构。qC 语言另外还提供了一个特殊的运算符条件运算符,由此构成的表达式也可以形成简单的条件分支结构。q条件运算符由两个运算符组成,它们是?:使用形式为:表达式1?表达式2:表达式3非0013永城职业学院 彭勃条件运算符int x,y;x=20;y=x 10?200:100;printf(“y=%d”,y);int x,y;x=5;y=x 10?200:100;printf(“y=%d”,y);q例如:14永城职业学院 彭勃图3:C 语言的运算符类类型型运算符运算符运算方向运算方向圆括号、?()?从左向右逻辑非、自增/自减运算符、负号运算符、类型转换运算符、?

9、!(type)?从右向左(单目运算符)乘法、除法、取模运算符*%从左向右加法、减法运算符 从左向右?关系运算符 从左向右等于、不等于运算符 !从左向右?逻辑与&从左向右逻辑或|从左向右条件运算符条件运算符?:?:从右向左从右向左赋值运算符、组合赋值运算符 *%?从右向左逗号,从左向右高低优先级15永城职业学院 彭勃switch 语句q多路分支语句 switch 允许根据条件判断执行一行或多行代码,这与 if-else 构造相同。q不同的是,if-else 语句计算一个逻辑表达式的值,而 switch 语句则拿一个整数或 char 类型值与一个或多个 case 标签中的值做比较。如果符合其中之一

10、,对应标签后面的代码就会被执行。q也可以使用一个可选的 default 标签,在表达式值不满足任何一个 case 标签时,执行其后面的代码。16永城职业学院 彭勃switch 语法qswitch 语句的一般语法如下:switch(int-or-char-expression)case value1:/如果表达式和 value1 相符,执行这些代码 break;case value2:/如果表达式和 value2 相符,执行这些代码 break;/更多的 case 标签.case valueN:/如果表达式和 valueN 相符,执行这些代码 break;default:/如果不满足任何标签,执

11、行默认代码 break;代码段2代码段Nint-or-char-expression代码段1default代码段value1value2valueNdefaultbreakbreakbreakbreak17永城职业学院 彭勃switch 例子q编写程序,从键盘输入一个字符,当输入的字符为“1”、“2”或“3”时,分别显示“Yes”、“No”、“Cancel”,输入其它字符时显示“Illegal!”。char a=0;printf(1:Yes 2:No 3:Canceln);printf(Please choose:);a=getchar();switch(a)/*switch 语句开始*/ca

12、se 1:printf(Yesn);break;case 2:printf(Non);break;case 3:printf(Canceln);break;default:printf(Illegal!n);break;/*switch 语句结束*/printf(Press any key to end.);18永城职业学院 彭勃跳出 switchq和 if 语句不同,在满足条件和执行了相应 case 标签后的代码后,switch 语句并不会自动终结。q要离开 switch 语句,必须使用跳出语句break。如果在任一 case 标签中没有跳出语句,程序就会继续执行,“贯穿”下一个 case

13、或 default 标签。char a=0;printf(1:Yes 2:No 3:Canceln);printf(Please choose:);a=getchar();switch(a)/*switch 语句开始*/case 1:printf(Yesn);case 2:printf(Non);case 3:printf(Canceln);break;break;default:printf(Illegal!n);/*switch 语句结束*/printf(Press any key to end.);19永城职业学院 彭勃switch 例子q编写程序,根据学生成绩给出相应的等级,大于或等于

14、 90 分以上的等级为 A,60 分以下的等级为 E,其余每 10 分为一个等级。int grade=74;if(grade=90)printf(“An”);else if(grade=80)printf(“Bn”);else if(grade=70)printf(“Cn”);else if(grade=60)printf(“Dn”);else printf(“En”);int grade;grade=74;switch(grade/10)case 10:case 9:printf(An);break;case 8:printf(Bn);break;case 7:printf(Cn);brea

15、k;case 6:printf(Dn);break;case 5:case 4:case 3:case 2:case 1:case 0:printf(En);break;缺陷?20永城职业学院 彭勃q若 a 和 b 均是正整型变量,语法正确的 switch 语句是:A)switch(pow(a,2)+pow(b,2)/pow 的功能为求 a 的2次幂 case 1:case 3:y=a+b;break;case 0:case 5:y=a b;B)switch(a*a+b*b);case 3:case 1:y=a+b;break;case 0:y=b a;break;C)switch a def

16、ault:x=a+b;case 10:y=a b;break;case 11:x=a*b;break;D)switch(a+b)case10:x=a+b;break;case11:y=a b;break;思考题21永城职业学院 彭勃课后作业q写出以下程序段运行后的输出结果。int a=0,b=1;switch(a)case 0:a-;b+;case 1:a+;b-;break;case 2:a+;b+;break;printf(“a=%d,b=%dn”,a,b);q复习课本 P79P88 的 4.5 节q预习课本 P32P42 的第 2 章22永城职业学院 彭勃上机练习qFTP 练习 6-1:

17、条件运算符的使用。qFTP 练习 6-2:switch 语句的使用。qP82 例 11q用 switch 语句完成如下功能:在程序开头加上#include,给实型变量 x 赋一个初值,再输入一个整数,若输入是 1,则计算 x 的平方;若输入是 2,则计算 x 的立方;若输入是 3,则计算 x 的平方根;若输入其它值,则显示错误信息。提示:scanf(%d,&a);switch(a)case 1:printf(y=%lf,x*x);break;case 2:printf(y=%lf,pow(x,3);break;case 3:printf(y=%lf,sqrt(x);break;default:

18、printf(Error!);break;23永城职业学院 彭勃格式输入函数 scanf()qscanf()函数是 C 语言提供的标准输入函数,其作用是从终端键盘上读入数据。qscanf()函数的一般调用形式如下:scanf(“格式字符串”,内存地址1,内存地址2,.)它的说明信息包含在 stdio.h 头文件中,只要在源程序开头加上#include 即可在程序中调用了。24永城职业学院 彭勃格式输入函数 scanf()qscanf()函数中的“字符串”可能包含下列部分:n空格或制表符:在处理过程中将被忽略。n普通字符(不包括%):用于匹配输入流中下一个非空白符字符。n占位符:依次由一个%、一

19、个可选的数值(指定最大宽度)以及一个格式字符组成。例如:格式说明输出形式%c输入一个字符%d输入带符号的十进制整型数%f(%lf)以带小数点的数学形式或指数形式输入浮点数(单精度数用 f,双精度数用 lf)%s输入一个字符串。25永城职业学院 彭勃输入数值数据q在输入整数或实数这类数值型数据时,输入的数据之间必须用空格、回车符、制表符(Tab键)等间隔符隔开,间隔符个数不限。例如:/前面已引入头文件 stdio.h/而且所有变量都已声明为正确类型printf(“Please input:n”);scanf(“%d%f%lf”,&k,&a,&y);scanf(“%d%f%lf”,&k,&a,&y

20、);26永城职业学院 彭勃指定输入宽度q可以在格式字符前加入一个正整数指定输入数据所占的宽度。例如上例可改为:/前面已引入头文件 stdio.h/而且所有变量都已声明为正确类型printf(“Please input:n”);scanf(“%3d%5f%5lf”,&k,&a,&y);scanf(“%3d%5f%5lf”,&k,&a,&y);printf(“k=%d,a=%f,y=%lfn”,k,a,y);输出结果为:27永城职业学院 彭勃格式字符串中的普通字符qscanf()函数中的格式字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上,因此若想在屏幕上显示提示信息,应该首先使用

21、 printf()函数。例如:int x,y,z;scanf(“Please input x,y,z:%d%d%d”,&x,&y,&z);屏幕上并不会输出“Please input x,y,z:”,而是要求输入数据时必须按照一一对应的方式原样输入这些普通字符。所以下一行内容都是运行时必须要输入的:但如果使用以下的形式,就能在运行时得到提示:int x,y,z;printf(“Please input x,y,z:”);scanf(“%d%d%d”,&x,&y,&z);Please input x,y,z:12 34 5628永城职业学院 彭勃格式字符串中的普通字符q如果在上面的 scanf()

22、函数中,在每个占位符之间加一个逗号普通字符。例如:scanf(“%d,%d,%d”,&x,&y,&z);q则输入数据时,必须在每个数值后面紧跟一个逗号,以便与字符串中的逗号一一匹配,否则就不能正确读入数值。例如以下输入:29永城职业学院 彭勃思考题q若变量已正确定义为 float 型,要通过调用输入函数:scanf(“%f%f%f”,&a,&b,&c);给 a 赋值 11.0,b 赋值 22.0,c 赋值 33.0,不正确的输入形式是 ()A)11 B)11.0,22.0,33.0 C)11.0 D)11 2222 22.0 33.0 333330永城职业学院 彭勃课后作业q若变量 i、j、k

23、 都已正确定义,用以下语句进行输入时:scanf(“%3f%2d%6lf”,&i,&j,&k);从键盘输入:12.345678.912345(代表 Enter 键)则变量 i、j、k 的值分别是 _、_、_。q复习课本 1 4 章内容q预习课本第 5 章:数组31永城职业学院 彭勃上机练习qFTP 练习 6-5:格式输入函数 scanf 的使用。qP38 例 6qP39 例 7qP41 例 932永城职业学院 彭勃图1:C 源程序结构图C源程序函数原型说明函数(若干)函数头函数体表达式语句流程控制语句函数调用语句块语句(复合语句)空语句#预处理命令定义变量部分执行语句?/*介绍性注释*/其中必

24、然有一个main()函数33永城职业学院 彭勃图2:数据类型C语言的数据类型有:数据类型数据类型?值类型值类型整型整型整型整型字符型字符型字符型字符型 charcharcharchar实型(浮点型)实型(浮点型)实型(浮点型)实型(浮点型)单精度实型单精度实型单精度实型单精度实型 floatfloatfloatfloat双精度实型双精度实型双精度实型双精度实型 doubledoubledoubledouble短整型短整型短整型短整型 shortshortshortshort长整型长整型长整型长整型 longlonglonglong整型整型整型整型 intintintint构造类型构造类型数组类型数组类型?34永城职业学院 彭勃图3:C 语言的运算符类类型型运算符运算符运算方向运算方向圆括号、?()?从左向右逻辑非、自增/自减运算符、负号运算符、类型转换运算符、?!(type)?从右向左(单目运算符)乘法、除法、取模运算符*%从左向右加法、减法运算符 从左向右?关系运算符 从左向右等于、不等于运算符 !从左向右?逻辑与&从左向右逻辑或|从左向右条件运算符条件运算符?:?:从右向左从右向左赋值运算符、组合赋值运算符 *%?从右向左逗号,从左向右高低优先级35

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁