《C程序设计语言(第2版新版)典藏版》 —3.2 if-else语句
【摘要】 本节书摘来自华章计算机《C程序设计语言(第2版新版)典藏版》一书中第3章,第3.节,作者是[美]布莱恩W. 克尼汉 (Brian W. Kernighan) 丹尼斯M. 里奇 (Dennis M. Ritchie),徐宝文 李志译 尤晋元 审校。
3.2 if-else语句
if-else语句用于条件判定。其语法如下所示:
if(表达式)
语句1
else
语句2
其中else部分是可选的。该语句执行时,先计算表达式的值,如果其值为真(即表达式的值为非0),则执行语句1;如果其值为假(即表达式的值为0),并且该语句包含else部分,则执行语句2。
由于if语句只是简单测试表达式的数值,因此可以对某些代码的编写进行简化。最明显的例子是用如下写法
if(表达式)
来代替
if(表达式!=0)
某些情况下这种形式是自然清晰的,但也有些情况下可能会含义不清。
因为if-else语句的else部分是可选的,所以在嵌套的if语句中省略它的else部分将导致歧义。解决的方法是将每个else与最近的前一个没有else配对的if进行匹配。例如,在下列语句中:
else部分与内层的if匹配,我们通过程序的缩进结构也可以看出来。如果这不符合我们的意图,则必须使用花括号强制实现正确的匹配关系:
歧义性在下面这种情况下尤为有害:
程序的缩进结构明确地表明了设计意图,但编译器无法获得这一信息,它会将else部分与内层的if配对。这种错误很难发现,因此我们建议在有if语句嵌套的情况下使用花括号。
顺便提醒读者注意,在语句
中,z=a后有一个分号。这是因为,从语法上讲,跟在if后面的应该是一条语句,而像“z=a;”这类表达式语句总是以分号结束的。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)