清华大学出版社 TSINGHUA UNIVERSITY PRESS 第5章 选择结构程序设计 5.1 关系运算符和关系表达式 5.2 逻辑运算符和逻辑表达式 5.3 if语句 5.4 switch语句 5.5程序举例 习题
5.1 关系运算符和关系表达式 5.2 逻辑运算符和逻辑表达式 5.3 if语句 5.4 switch语句 5.5 程序举例 习题 第5章 选择结构程序设计
清华大学出版社 TSINGHUA UNIVERSITY PRESS 在第3章中已介绍了选择结构,它是三种基本 结构之一。在大多数程序中都会包含选择结 构。它的作用是,根据所指定的条件是否满 足,决定从给定的两组操作选择其一。在本 章中介绍如何用c语言实现选择结构。在c语 言中选择结构是用f语句实现的。f语句最常 用的形式是 if(关系表达式)语句1else语句2 例如: if (x>0)y=1;else y=-1; 其中x>0是一个关系表达式。“>”是一个关系 运算符
在第3章中已介绍了选择结构,它是三种基本 结构之一。在大多数程序中都会包含选择结 构。它的作用是,根据所指定的条件是否满 足,决定从给定的两组操作选择其一。在本 章中介绍如何用c语言实现选择结构。在c语 言中选择结构是用if语句实现的。if语句最常 用的形式是 if (关系表达式)语句1 else 语句2 例如: if ( x>0 ) y=1; else y=-1; 其中x>0是一个关系表达式。“>”是一个关系 运算符
清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.1关系运算符和关系表达式 关系运算是逻辑运算中比较简单的一种。所谓“关 系运算”实际上是“比较运算”。将两个值进行比 较,判断其比较的结果是否符合给定的条件。例如, a>3是一个关系表达式,大于号(>)是一个关系运 算符,如果a的值为5,则满足给定的“a>3”条件, 因此关系表达式的值为“真”(即“条件满足”); 如果a的值为2,不满足“a>3”条件,则称关系表 达式的值为“假
5.1 关系运算符和关系表达式 关系运算是逻辑运算中比较简单的一种。所谓“关 系运算”实际上是“比较运算”。将两个值进行比 较,判断其比较的结果是否符合给定的条件。例如, a>3是一个关系表达式,大于号(>)是一个关系运 算符,如果a的值为5,则满足给定的“a>3”条件, 因此关系表达式的值为“真”(即“条件满足”); 如果a的值为2,不满足“a>3”条件,则称关系表 达式的值为“假
清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.1.1关系运算符及其优先次序 C语言提供6种关系运算符: 优先级相同(高): ①(大于) ④>=(大于或等于) 优先级相同(低): ⑤==(等于) ⑥!=(不等于) 关于优先次序: (1)前4种关系运算符(,>=)的优先级别相同,后 两种也相同。前4种高于后2种。例如,“>”优先于“=”。 而“>”与“<”优先级相同
5.1.1 关系运算符及其优先次序 C语言提供6种关系运算符: 优先级相同(高): ① <(小于) ② <=(小于或等于) ③ >(大于) ④ >=(大于或等于) 优先级相同(低): ⑤ = = (等于) ⑥ !=(不等于) 关于优先次序: (1) 前4种关系运算符(<,<=,>,>=)的优先级别相同,后 两种也相同。前4种高于后2种。例如,“>”优先于“==”。 而“>”与“<”优先级相同
清华大学出版社 TSINGHUA UNIVERSITY PRESS 算术运算符 1(高) (2)关系运算符的优先级低于算术运 算符。 关系运算符 (3)关系运算符的优先级高于赋值运 赋值运算符「(低〉 算符。 以上关系见图5.1。 例如: 图5.1 c>a十b 等效于c>(a+b) a>b==c 等效于(a>b)==( a==bc 等效于a=(b>c)
(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
清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关 系表达式、逻辑表达式、赋值表达 式、字符表达式)连接起来的式子,称关系表达式。 例如,下面都是合法的关系表达式: a>b,a+b>b+c, (a=3)>(b=5), 'a'b)>(b=0”的值为“真”。c语言没有逻辑型数据 Pascali语言以True表示“真”,以false表示 “假”。PascaL和FORTRAN等语言都有逻辑型 变量和逻辑型常
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等语言都有逻辑型 变量和逻辑型常
清华大学出版社 TSINGHUA UNIVERSITY PRESS 量),以1代表“真”,以“0”代表“假”。例如, a=3,b=2,c=1,则: 关系表达式“a>b”的值为“真”,表达式的值为1。 关系表达式“(a>b)==c”的值为“真”(因为a>b的 值为1,等于c的值),表达式的值为1。 关系表达式“b十cbd的值为1。 f=a>b>cf的值为0(因为“>”运算符是自左至右 的结合方向,先执行“a>b”得值为1,再执行关 系运算“1>c”,得值0,赋给)
量),以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)
清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.2逻辑运算符和逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来 的式子就是逻辑表达式。在basicz和Pascali语言 中有以下形式的逻辑表达式(AND是逻辑运算 符): (a>b)AND(x>y) 如果a>b且x>y,则上述逻辑表达式的值为 “真”。下面介绍c语言中的逻辑运算符和逻 辑运算。 5.2.1逻辑运算符及其优先次序 C语言提供三种逻辑运算符:
用逻辑运算符将关系表达式或逻辑量连接起来 的式子就是逻辑表达式。在basic和Pascal语言 中有以下形式的逻辑表达式(AND是逻辑运算 符): (a>b)AND(x>y) 如果a>b且x>y,则上述逻辑表达式的值为 “真”。下面介绍c语言中的逻辑运算符和逻 辑运算。 5.2.1 逻辑运算符及其优先次序 C语言提供三种逻辑运算符: 5.2 逻辑运算符和逻辑表达式
清华大学出版社 TSINGHUA UNIVERSITY PRESS ()&&逻辑与(相当于其他语言中的aND) (2)I逻辑或(相当于其他语言中的0R) (3)!逻辑非(相当于其他语言中的NOT) “&&”和“”是“双目(元)运算符”,它要求有两个 运算量(操作数),如(a>b)&&(>y),(a>b川(x> y)。“”是“一目(元)运算符”,只要求有一个运 算量,如(a>b)。 逻辑运算举例如下: a&&b若a、b为真,则a&&b为真。 ab若a、b之一为真,则ab为真。 !a若a为真,则a为假
(1) &&逻辑与(相当于其他语言中的aND) (2) || 逻辑或(相当于其他语言中的OR) (3) ! 逻辑非(相当于其他语言中的NOT) “&&”和“||”是“双目(元)运算符”,它要求有两个 运算量(操作数),如(a>b)&&(x>y),(a>b)||(x> y)。 “!”是“一目(元)运算符”,只要求有一个运 算量,如(a>b)。 逻辑运算举例如下: a&&b若a、b为真,则a&&b为真。 a||b 若a、b之一为真,则a||b为真。 !a 若a为真,则!a为假
清华大学出版社 TSINGHUA UNIVERSITY PRESS 在一个逻辑表达式中如果包含多个逻辑运算符,如 !a &&blxy &&c 按以下的优先次序: (1):(非)→&&(与)(或),即“!”为三者中最高的。 (2)逻辑运算符中的“&&”和“”低于关系运算符, “!”高于算术运算符。见图5.2。 (非) (高) 算术运算符 关系运算符 &&和川 赋值运算符 (低) 图5.2
在一个逻辑表达式中如果包含多个逻辑运算符,如 !a && b||x>y && c 按以下的优先次序: (1) !(非)→&&(与)→(或), 即“!”为三者中最高的。 (2) 逻辑运算符中的“&&”和“||”低于关系运算符, “!”高于算术运算符。见图5.2。 图5.2