《条件分支语句》PPT课件.ppt

上传人:小飞机 文档编号:5584602 上传时间:2023-07-30 格式:PPT 页数:35 大小:484KB
返回 下载 相关 举报
《条件分支语句》PPT课件.ppt_第1页
第1页 / 共35页
《条件分支语句》PPT课件.ppt_第2页
第2页 / 共35页
《条件分支语句》PPT课件.ppt_第3页
第3页 / 共35页
《条件分支语句》PPT课件.ppt_第4页
第4页 / 共35页
《条件分支语句》PPT课件.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《《条件分支语句》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《条件分支语句》PPT课件.ppt(35页珍藏版)》请在三一办公上搜索。

1、第三章,条件分支语句,2,有胡萝卜吗?,有黄瓜吗?,制作胡萝卜沙拉,有,条件分支结构,有,制作黄瓜沙拉,制作黄瓜沙拉,没有,没有,3,if 语句,if 语句是基本的条件分支语句,在满足某条件时,执行一行或多行代码;当条件没有得到满足时,将执行 else 关键字后面的代码。if 语句中的 else 子句是可选的。if 语句的基本语法如下所示:if(condition)/条件满足时执行的代码或者,添加可选的 else 子句:if(condition)/条件满足时执行的代码else/条件不满足时执行的代码,4,if 语句,同循环语句一样,如果 if 或(可选的)else 关键字后面只有一行执行语句,

2、则可省略大括号:/前面略.if(condition)如果真时执行的单行语句;else 如果假时执行的单行语句;,5,if 例子,编写程序,根据学生成绩给出相应的评价,大于或等于 60 分以上的评价为“及格”,60 分以下的评价为“不及格”。,#include main()int grade;grade=74;if(grade=60)printf(“Pass!n”);else printf(“Sorry!You are failed!n”);getch();,6,嵌套 if 语句,同其它流程控制语句一样,if 语句也可以嵌套。可以使用嵌套的 if-else 构造来测试多个条件。,if(condi

3、tion1)/执行这些代码else if(condition2)/执行另外的代码 else/如果不满足上述条件/则执行这些代码,两层嵌套的 if else 构造基本语法如下所示:,7,嵌套 if 语句,if(condition1)/执行这些代码else if(condition2)/执行另外的代码 else/如果不满足上述条件/则执行这些代码,if(condition1)/执行这些代码else if(condition2)/执行另外的代码else/如果不满足上述条件/则执行这些代码,左例的嵌套 if 语句也可以用另一种“写法”实现:,多重 if 写法,8,嵌套 if 例子,细化刚才的程序,根据

4、学生成绩给出相应的等级,大于或等于 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;if(grade=90)printf(“An”);else if(grade=80)printf(“Bn”);else if(grade=70)pri

5、ntf(“Cn”);else if(grade=60)printf(“Dn”);else printf(“En”);,多重 if 写法,注意:else 子句总是与前面最近的不带 esle 的 if 相结合,与书写格式无关。,9,需要注意的,在测试是否相等时,要记得使用两个连续的等于号:if(x=3)/注意使用双等于号(=)判断是否相等y=x;C 初学者常犯的错误是使用单个等于号测试是否相等:if(x=3).x=3 不是逻辑表达式,而是赋值表达式。,10,思考题,为表示关系:xyz,应使用的 C 语言表达式是()A)(x=y)若执行以上程序时从键盘上输入 3 和 4,则输出结果是()A)14B)

6、16C)18D)20,11,课后作业,有以下程序段:int a=2,b=1,c=2;if(a 0)y=1;else y=0;其能正确表示的数学函数关系是()A)B)C)D),复习课本 P69P79 的 4.1 4.4 节预习课本 P79P88 的 4.5 节,12,上机练习,FTP if-else、if-else-if 练习P69 P78,例 1 例 6,13,条件运算符,前面介绍了使用 C 语言中的 if 语句来构成程序中的条件分支结构。C 语言另外还提供了一个特殊的运算符条件运算符,由此构成的表达式也可以形成简单的条件分支结构。条件运算符由两个运算符组成,它们是?:使用形式为:表达式1?表

7、达式2:表达式3,非0,0,14,条件运算符,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);,例如:,15,图3:C 语言的运算符,16,switch 语句,多路分支语句 switch 允许根据条件判断执行一行或多行代码,这与 if-else 构造相同。不同的是,if-else 语句计算一个逻辑表达式的值,而 switch 语句则拿一个整数或 char 类型值与一个或多个 case 标签中的值做比较。如果符合其中之一,对应标签后面的代码就会被执行。也可以使用一个

8、可选的 default 标签,在表达式值不满足任何一个 case 标签时,执行其后面的代码。,17,switch 语法,switch 语句的一般语法如下:,switch(int-or-char-expression)case value1:/如果表达式和 value1 相符,执行这些代码 break;case value2:/如果表达式和 value2 相符,执行这些代码 break;/更多的 case 标签.case valueN:/如果表达式和 valueN 相符,执行这些代码 break;default:/如果不满足任何标签,执行默认代码 break;,18,switch 例子,编写程序

9、,从键盘输入一个字符,当输入的字符为“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 语句开始*/case 1:printf(Yesn);break;case 2:printf(Non);break;case 3:printf(Canceln);break;default:printf(Illegal!n);break;/*switch 语句结束*/

10、printf(Press any key to end.);,19,跳出 switch,和 if 语句不同,在满足条件和执行了相应 case 标签后的代码后,switch 语句并不会自动终结。要离开 switch 语句,必须使用跳出语句break。如果在任一 case 标签中没有跳出语句,程序就会继续执行,“贯穿”下一个 case 或 default 标签。,char a=0;printf(1:Yes 2:No 3:Canceln);printf(Please choose:);a=getchar();switch(a)/*switch 语句开始*/case 1:printf(Yesn);ca

11、se 2:printf(Non);case 3:printf(Canceln);break;default:printf(Illegal!n);/*switch 语句结束*/printf(Press any key to end.);,20,switch 例子,编写程序,根据学生成绩给出相应的等级,大于或等于 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

12、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);break;case 6:printf(Dn);break;case 5:case 4:case 3:case 2:case 1:case 0:printf(En);break;,缺陷?,21,若 a 和 b 均是正整型变量,语法正确的 switch 语句是:A)switch(pow(a,2)

13、+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 default: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;,思考题,22,课后作业,写出以下程序段运行后的输出结果。int a=0,b=1;switch(

14、a)case 0:a-;b+;case 1:a+;b-;break;case 2:a+;b+;break;printf(“a=%d,b=%dn”,a,b);复习课本 P79P88 的 4.5 节预习课本 P32P42 的第 2 章,23,上机练习,FTP 练习 6-1:条件运算符的使用。FTP 练习 6-2:switch 语句的使用。P82 例 11用 switch 语句完成如下功能:在程序开头加上#include,给实型变量 x 赋一个初值,再输入一个整数,若输入是 1,则计算 x 的平方;若输入是 2,则计算 x 的立方;若输入是 3,则计算 x 的平方根;若输入其它值,则显示错误信息。提

15、示:scanf(%d,24,格式输入函数 scanf(),scanf()函数是 C 语言提供的标准输入函数,其作用是从终端键盘上读入数据。scanf()函数的一般调用形式如下:scanf(“格式字符串”,内存地址1,内存地址2,.)它的说明信息包含在 stdio.h 头文件中,只要在源程序开头加上#include 即可在程序中调用了。,25,格式输入函数 scanf(),scanf()函数中的“字符串”可能包含下列部分:空格或制表符:在处理过程中将被忽略。普通字符(不包括%):用于匹配输入流中下一个非空白符字符。占位符:依次由一个%、一个可选的数值(指定最大宽度)以及一个格式字符组成。例如:,

16、26,输入数值数据,在输入整数或实数这类数值型数据时,输入的数据之间必须用空格、回车符、制表符(Tab键)等间隔符隔开,间隔符个数不限。例如:,/前面已引入头文件 stdio.h/而且所有变量都已声明为正确类型printf(“Please input:n”);scanf(“%d%f%lf”,27,指定输入宽度,可以在格式字符前加入一个正整数指定输入数据所占的宽度。例如上例可改为:,/前面已引入头文件 stdio.h/而且所有变量都已声明为正确类型printf(“Please input:n”);scanf(“%3d%5f%5lf”,输出结果为:,28,格式字符串中的普通字符,scanf()函数

17、中的格式字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上,因此若想在屏幕上显示提示信息,应该首先使用 printf()函数。例如:int x,y,z;scanf(“Please input x,y,z:%d%d%d”,Please input x,y,z:12 34 56,29,格式字符串中的普通字符,如果在上面的 scanf()函数中,在每个占位符之间加一个逗号普通字符。例如:scanf(“%d,%d,%d”,则输入数据时,必须在每个数值后面紧跟一个逗号,以便与字符串中的逗号一一匹配,否则就不能正确读入数值。,例如以下输入:,30,思考题,若变量已正确定义为 float 型,

18、要通过调用输入函数:scanf(“%f%f%f”,给 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 3333,31,课后作业,若变量 i、j、k 都已正确定义,用以下语句进行输入时:scanf(“%3f%2d%6lf”,从键盘输入:12.345678.912345(代表 Enter 键)则变量 i、j、k 的值分别是 _、_、_。复习课本 1 4 章内容预习课本第 5 章:数组,32,上机练习,FTP 练习 6-5:格式输入函数 scanf 的使用。P38 例 6P39 例 7P41 例 9,33,图1:C 源程序结构图,34,图2:数据类型,C 语言的数据类型有:,35,图3:C 语言的运算符,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号