全国计算机等级考试实用应试教程二级C语言选择结构.ppt

上传人:本田雅阁 文档编号:2587806 上传时间:2019-04-13 格式:PPT 页数:43 大小:609.01KB
返回 下载 相关 举报
全国计算机等级考试实用应试教程二级C语言选择结构.ppt_第1页
第1页 / 共43页
全国计算机等级考试实用应试教程二级C语言选择结构.ppt_第2页
第2页 / 共43页
全国计算机等级考试实用应试教程二级C语言选择结构.ppt_第3页
第3页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《全国计算机等级考试实用应试教程二级C语言选择结构.ppt》由会员分享,可在线阅读,更多相关《全国计算机等级考试实用应试教程二级C语言选择结构.ppt(43页珍藏版)》请在三一文库上搜索。

1、第4章 选择结构 本章要点: 4.1 关系运算和逻辑运算 4.2 if语句和用if语句构成的选择结构 4.3 条件表达式构成的选择结构 4.4 switch语句以及用switch语句和break语句 构成的选择结构 4.5 语句标号和goto语句 4.1 关系运算和逻辑运算 4.1.1 C语言中的逻辑值 C语言中,参与逻辑运算的量为非零值或整数 零,非零值和整数零分别表示运算量为“真”或“假” 。逻辑运算的结果值,即逻辑表达式的值应该是 一个逻辑值“真”或“假”。C语言编译系统在给出逻 辑运算结果时,以数值1代表“真”,以0代表“假”, 但在判断一个量是否为“真”时,以0代表“假”,以 非0代

2、表“真”。 4.1.2 关系运算符和关系表达式 关系运算实际上就是“比较运算”,将两个数进行比较,判断 比较的结果是否符合指定的条件。 1关系运算符 关于关系运算符的说明: (1)表4-1中前4种运算符(、=)的优先级别相 同,后两种也相同。前4种优先级别高于后两种。如,“” 优先级别高于“!=”。 (2)关系运算符与算术运算符、赋值运算符的优先级关系 如下: 算术运算符(高)关系运算符(中)赋值运算符(低) 即:算术运算符优先级别高于关系运算符,关系运算符优先 级别又高于赋值运算符。 (3)关系运算符的结合方向是“自左向右”。 C语言有六种关系运算符,如表4-1所示。 表4.1 C语言中的关

3、系运算符 运算符名称优先次序 大于 =大于或等于 =(连续两个=)等于 优先级相同(低) !=不等于 2关系表达式及关系表达式的值 用关系运算符将两个表达式(算术表达式、关 系表达式、逻辑表达式、赋值表达式、字符表达 式等)连接起来的式子,称关系表达式。例如, a=b,a= =c等。 在C语言中,关系表达式的结果值为1或0。当 关系表达式成立时,其结果值为1,否则,其值为 0。若a=10,b=6,表达式a=b为“真“,其值为1。 当关系运算符两边的值类型不一致时,系统将 自动进行转换。转换规则与双目运算中的类型转 换规则相同。 关系运算示例:试求x=531的值。 分析:x=531相当于: x=

4、(53)1 =11 =0 故x的值为0。 关系表达式主要用于选择结构中的条件判断。 重点提示:表示“等于”关系的运算符“= =”和“ 不等于”关系的运算符“!=”与数学中的表示方法不 同。在使用它们时请予以注意,以免写错关系运 算符而导致错误的结果。例如,欲判断x是否等于 0,如果写成:x=0就不是判断x是否等于0的含义 了,而成了把0赋值给变量x。正确的写法应为: x= =0。 4.1.3 逻辑运算符和逻辑表达式 1C语言中的逻辑运算符 关系表达式只适于描述单一的条件,对于较复 杂的复合条件就需要将若干个关系表达式连接起 来才能描述,如描述“x大于0且不等于2”,就需要 将两个关系表达式x0

5、和x!=2连接起来: x0 else printf(“%d 3 9-6 Please enter two integers: 456,456 456= =456 里层的ifelse语句是外层条件语句if下的嵌套语句,它 虽然占据多个书写行,却不是复合语句,可以作为一个语 句看待,因此无须用一对大括号括起来。 重点提示:在嵌套内的if语句既可以是if语句形式也可 以是ifelse语句形式,这就会出现多个if和多个else重叠的 情况。此时要特别注意if和else的配对问题。if和else配对 规则为:else总是与它前一个最近的if配对。 4.3 条件表达式构成的选择结构 对于有些选择分支结构,

6、C语言另外还提供了 一个特殊的运算符条件运算符,由此构成的 表达式也可以形成简单的选择结构,这种选择结 构能以表达式的形式内嵌在允许出现表达式的地 方,使得可以根据不同的条件使用不同的数据参 与运算。 1条件运算符 条件运算符由两个符号“?”和“:”组成,要求有3 个操作对象,称三目(元)运算符,它是C语言 中唯一的三目运算符。 2条件表达式 条件表达式的一般形式为: 表达式1?表达式2:表达式3 它的执行过程如图4.5所示。以下是几点说明: (1)通过情况下,表达式1是关系表达式或逻辑表 达式,用于描述条件表达式中的条件,表达式2和 表达式3可以是常量、变量或表达式。 (2)条件表达式的执行

7、顺序为:先求解表达式1, 若值为非0,表示条件为真,则求解表达式2,此 时表达式2的值就作为整个条件表达式的值;若表 达式1的值为0,表示条件为假,则求解表达式3 ,表达式3的值就是整个条件表达式的值。 (3)在程序中,通过把条件表达式的值直接赋予某 个变量。例如: min=(a0?1:x0?1:(x60n“); break; 在A、B两种情况下,均执行相同的语句,即输出“60”。 (5)在switch语句中,只有最后一个分支(default)中的 break语句的存在于否不影响执行结果。因为没有这个 break语句,执行该分支的所有语句后也会自动退出 switch语句。而其余各分支中的bre

8、ak语句有与无时的流 程是完全不同的。例如在上例中,如果caseA、B后面没 有break语句,则当grade=A时,程序从printf(“85 100n“)开始执行,输出结果为: 85100 7084 error 这是因为case后面的常量表达式实际上只起语 句标号作用,而不起条件判断作用,即“只是开始 执行处的入口标号”。因此,一旦与switch后面圆 括号中表达式的值匹配,就从此标号处开始执行 ,而且执行完一个case后面的语句后,若没遇到 break语句,就自动进入下一个case继续执行,而 不再判断是否与之匹配,直到遇到break语句才停 止执行,退出break语句。因此,若想执行一

9、个 case分支后立即跳出switch语句,就必须在此分 支的最后添加一个break语句。 重点提示:在switch语句中,default总是放 在最后,这时,default后不需要break语句。因此 只有最后一个分支(default)中的break语句的存 在于否不影响执行结果。 4.5 语句标号和goto语句 4.5.1 语句标号 在C语言中,语句标号不必特殊加以定义,标 号可以是任意合法的标识符,当在标识符后面加 一个冒号,该标识符就成为一个语句标号。如 student:等。注意,C语言中,语句标号必须是标 识符,而不能是数值常量形式,标号可以和变量 同名。 通常,标号用作goto语句的转向目标。如: goto state; C语言中,可以在任何语句前加上语句标号,如 : state: printf(“endn”); 4.5.2 goto语句 goto语句称为无条件转向语句,goto语句的一 般形式为: goto 语句标号 goto语句的作用是把程序的执行转向语句标号 所在的位置,这个语句标号必须与此goto语句同 在一个函数内。 重点提示:滥用goto语句将使得程序的流程 毫无规律,可读性差,对于初学者来说应尽量不 采用。

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1