- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c程序第5章_选择结构程序设计
5.1 关系运算符和关系表达式
5.2 逻辑运算符和逻辑表达式
5.3 if语句
5.4 switch语句
5.5 程序举例
习题;在第3章中已介绍了选择结构,它是三种基本结构之一。在大多数程序中都会包含选择结构。它的作用是,根据所指定的条件是否满足,决定从给定的两组操作选择其一。在本章中介绍如何用c语言实现选择结构。在c语言中选择结构是用if语句实现的。if语句最常用的形式是
if (关系表达式)语句1 else 语句2
例如:
if ( x0 ) y=1; else y=-1;
其中x0是一个关系表达式。“”是一个关系运算符。;5.1 关系运算符和关系表达式;5.1.1 关系运算符及其优先次序;(2) 关系运算符的优先级低于算术运算符。
(3) 关系运算符的优先级高于赋值运算符。
以上关系见图5.1。
例如:
c>a+b 等效于 c>(a+b)
a>b==c 等效于(a>b)==c
a==b<c 等效于a==(b<c)
a=b>c 等效于a=(b>c);5.1.2 关系表达式
用关系运算符将两个表达式(可以是算术表达式或关系表达式、逻辑表达式、赋值表达
式、字符表达式)连接起来的式子,称关系表达式。例如,下面都是合法的关系表达式:
a>b, a+b>b+c, (a=3)>(b=5), a<b, (a>b)>(b<c)
关系表达式的值是一个逻辑值,即“真”或“假”。例如,关系表达式“5==3”的值为“假”,“5>=0”的值为“真”。c语言没有逻辑型数据(Pascal语言以True表示“真”,以false表示“假”。PascaL和FORTRAN等语言都有逻辑型变量和逻辑型常; 量),以1代表“真”,以“0”代表“假”。例如,a=3,b=2,c=1,则:
关系表达式“a>b”的值为“真”,表达式的值为1。
关系表达式“(a>b)==c”的值为“真”(因为a>b的值为1,等于c的值),表达式的值为1。
关系表达式“b+c<a”的值为“假”,表达式的值为0。
如果有以下赋值表达式:
d=a>bd的值为1。
f=a>b>cf的值为0 (因为“>”运算符是自左至右的结合方向,先执行“a>b”得值为1, 再执行关系运算“1>c”,得值0,赋给f)。;用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。在basic和Pascal语言中有以下形式的逻辑表达式(AND是逻辑???算符):
(a>b)AND(x>y)
如果a>b且x>y,则上述逻辑表达式的值为“真”。下面介绍c语言中的逻辑运算符和逻辑运算。
5.2.1 逻辑运算符及其优先次序
C语言提供三种逻辑运算符:;(1) 逻辑与(相当于其他语言中的aND)
(2) || 逻辑或(相当于其他语言中的OR)
(3) ! 逻辑非(相当于其他语言中的NOT)
“”和“||”是“双目(元)运算符”,它要求有两个运算量(操作数),如(a>b)(x>y),(a>b)||(x>y)。 “!”是“一目(元)运算符”,只要求有一个运算量,如(a>b)。
逻辑运算举例如下:
ab若a、b为真,则ab为真。
a||b 若a、b之一为真,则a||b为真。
!a 若a为真,则!a为假。;在一个逻辑表达式中如果包含多个逻辑运算符,如
!a b||x>y c
按以下的优先次序:
(1) !(非)→(与)→(或), 即“!”为三者中最高的。
(2) 逻辑运算符中的“”和“||”低于关系运算符,“!”高于算术运算符。见图5.2。;例如:
(a>b) (x>y)可写成a>b x>y
(a==b)||(x==y) 可写成a==b||x==y
(!a)||(a>b) 可写成 !a||a>b
5.2.2 逻辑表达式
如前所述,逻辑表达式的值应该是一个逻辑量“真”或“假”。c语言编译系统在给出逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。即将一个非零的数值认作为“真”。例如:;(1) 若a=4,则!a的值为0。因为a的值为非0,被认作“真”,对它进行“非”运算,得“假”,“假”以0代表。
(2) 若a=4,b=5,则ab的值为1。因为a和b均为非0,被认为是“真”,因此ab的值也为“真”,值为1。
(3) a、b值同前, a||b的值为1。
(4) a、b值同前, !a||b的值为1。
(5) 40||2的值为1。
通过这几个例子可以看出,由系统给出的逻辑运算结果不是0就是1,不可能是其他数值。而在逻辑表达式中作为参加逻辑运算的运算对象(操作数); 可以是0(“
文档评论(0)