《C程序设计语言(第2版新版)典藏版》 —2.11 条件表达式
【摘要】 本节书摘来自华章计算机《C程序设计语言(第2版新版)典藏版》一书中第2章,第2.11节,作者是[美]布莱恩W. 克尼汉 (Brian W. Kernighan) 丹尼斯M. 里奇 (Dennis M. Ritchie),徐宝文 李志译 尤晋元 审校。
2.11 条件表达式
下面这组语句
用于求a与b中的较大者,并将结果保存到z中。条件表达式(使用三元运算符“:”)提供了另外一种方法编写这段程序及类似的代码段。在表达式
中,首先计算expr1,如果其值不等于0(为真),则计算expr2的值,并以该值作为条件表达式的值,否则计算expr3的值,并以该值作为条件表达式的值。expr2与expr3中只能有一个表达式被计算。因此,以上语句可以改写为:
应该注意,条件表达式实际上就是一种表达式,它可以用在其他表达式可以使用的任何地方。如果expr1与expr3的类型不同,结果的类型将由本章前面讨论的转换规则决定。例如,如果f为float类型,n为int类型,那么表达式
是float类型,与n是否为正值无关。
条件表达式中第一个表达式两边的圆括号并不是必需的,这是因为条件运算符 : 的优先级非常低,仅高于赋值运算符。但我们还是建议使用圆括号,因为这可以使表达式的条件部分更易于阅读。
采用条件表达式可以编写出很简洁的代码。例如,下面的这个循环语句打印一个数组的n个元素,每行打印10个元素,每列之间用一个空格隔开,每行用一个换行符结束(包括最后一行):
在每10个元素之后以及在第n个元素之后都要打印一个换行符,所有其他元素后都要打印一个空格。编写这样的代码可能需要一些技巧,但比用等价的if-else结构编写的代码要紧凑一些。下面是另一个比较好的例子:
练习2-10 重新编写将大写字母转换为小写字母的函数lower,并用条件表达式替代其中的if-else结构。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)