- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 选择结构
考核知识点
if语句的实现选择结构
用switch语句实现多分支选择结构
选择结构的嵌套
goto语句和语句标号的使用
重要考点提示
选择语句的简单操作
if语句的嵌套操作
switch语句的使用
4.1 关系运算符和关系表达式
关系运算是逻辑运算中较简单的一种。所谓“关系运算”其实就是“比较运算”,对两个值进行比较,判断其比较后的结果是否符合指定,从而执行不同的程序段。
关系运算符及其优先次序
C语言提供了6种关系运算符,见表4-1
表4-1 关系运算符
关系运算符 名称 小于 = 小于或等于 大于 = 大于或等于 == 等于 != 不等于 小提示:由两个字符组成的运算符之间不可以加空格,关系运算符都是双目运算符。
结合性:自左向右。
优先次序:前4种关系运算符的优先级别相同,后两种优先级相同,且前4种的优先级高于后两种;关系运算符的优先级低于算术运算符,高于赋值运算符。
关系表达式
由关系运算符连接而成的表达式(可以是算术表达式、关系表达式或其他表达式)称为关系表达式。
当关系运算符两边值的类型不一致时,若一边是整型,一边是实型,系统将自动把整型数转化为实型数,然后进行比较。
4.2 逻辑运算符和逻辑表达式
1.逻辑运算符及其优先级
C语言提供了3种逻辑运算符,见表4-2
表4-2 逻辑运算符
符号 名称 逻辑与 || 逻辑或 ! 软软非
“”和“||”是双目运算符,要求要有两个操作数,而“!”是单目运算符,只要求一个操作数即可,以上逻辑运算符的优先级是:“!”级别最高,其次是“”,“||”级别最低,逻辑运算符中的“”和“||”低于关系运算符,而“!”高于关系运算符。
2.逻辑表达式
逻辑表达式是由逻辑运算符和运算对象组成,其中,参与逻辑运算的对象可以是一个具体的值,还可以是C语言中任意合法的表达式,逻辑表达式的运算结果为1。若a=5,则!a的值为0。因为a的值为5,被认做是“真”,对它进行“非”运算后,结果为“假”,即结果为0.当A和B的值结合方式不同时,各种逻辑运算所得到的结果是不同的。见表4-3
表4-3 逻辑运算表
A B !A !B AB A||B 1 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 值得注意的是:在数学中,关系式0x10是可以使用的,表示x的值应在大于0且小于10的范围内。但在C语言中却不能用0x10这样一个关系表达式来表示上述逻辑关系,即关系运算符不能连用,但可以借助逻辑运算符来辅助运算,正确的表示方法是0xx10,在C语言中,由或||组成的逻辑表达式,在某些特定情况下会产生“短路”现象。如
xyz,只有当x为真时,才需要判别y的值;只有当x和y都为真时,才需要去判别z的值;只要x为假就不必判别y和z,整个表达式的值为0.。
x||y||z,只要z的值为真,就不必差别y和z的值,整表达式的值为1.。只有x的值为假时才需要差别y的值,只有x和y的值同时为假才需要判别z的值,因此,如有逻辑表达式(m=xy)(n=cd),其中x=1,y=2,c=3,d=4若m和n的原值为1,由于“xy”的值为0,因为m=0,而不执行“n=cd”,所以n的值不是0而是原值1。
4.3 IF语句和用IF语句构成的选择结构
if语句用来对所给定的条件进行判定,判断其表达式的值是否满足某种条件,并根据判定的结果决定执行给出的两种操作中的哪一种。
if语句的几种形式
if(表达式)语句
例如:if(ab)
printf(“The answer is right!\n”);
其中,if是C语言关系字,ab是条件判断表达式。表达式两侧的括号不可少,并且只能是圆括号,不能用其他括号替代。紧跟着的是一条输出语句,称为if子句。如果在if子句中需要多个语句,则应该使用大括号({})把一组语句括起来构成复合语句,这样在语法上满足“一条语句”的要求。
if(表达式) 语句1
else 语句2
例如:
if(ab)printf(“The answer is right.\n”);
else printf(“The answer is wrong.\n”);
if(表达式) 语句1
else if(表达式2)语句2
…
else if(表达式m) 语句1
else 语句n
“语句1”是if子句,“语句2…语句m”是else子句。这些子句在语法上要求是一条语句,但需要执行多条语句时,则应该使用花括号({})把这些语句括起来组成复合语句。
小提示:
else不能独立成为一条语句,它只是if语句的一部分,不允许单独出现在程序中。else?必须与if配对,共同组成if…else语句。
2.if语句的嵌套
在if语句中又包含
文档评论(0)