购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

陷阱17

脱离控制
——if语句没加大括号“{”和“}”

在程序中经常需要使用if等分支结构,实现对程序的流程进行控制,if语句是程序当中最常用的一种分支结构,可以说要编程就离不开if语句,由此可见if语句的重要性,如果if语句使用不正确,就会使程序发生逻辑错误,影响整个系统的执行,甚至会造成严重的经济损失。

对于一些刚刚走上编程岗位的程序员,很容易犯这样一个错误,那就是在使用if语句时不加大括号“{”和“}”,对于一个优秀的程序,应做到简单清晰、易于理解,就这一点而言,不加大括号就已经不可取了,实际上还有更严重的,那就是会导致程序的执行逻辑不正确,从而对整个系统造成影响。

说 明

使用if语句不加大括号,在很大程度上是由于在刚刚学习编程时养成的坏习惯,因为那时经常使用if语句控制一条语句的执行,if语句控制一条语句的执行时,是完全可以将大括号“{”和“}”省略的。

没有添加大括号,导致程序发生错误的示例:

计算产品的总金额,只有当产品编号是1008时,才通过产品单价800与产品数量 100计算出产品的总金额,并输出产品编号和产品的总金额,否则什么也不做。

运行本示例,程序将在控制台输出如图3.13 所示的产品信息,即产品ID是0的产品,而本示例的原意是产品ID是1008才输出,所以结果是错误的。

图3.13 在控制台输出的产品信息

说 明

本示例之所以输出如图3.13 所示的信息,是由于在使用if语句时,没有在if语句后添加大括号“{”和“}”将黑体字代码括起来,所以导致程序执行了不该执行的语句,因此输出了如图3.13 所示的信息,如果用大括号“{”和“}”将黑体字代码括起来,则当调用方法outputTotalMoney()时,如果为其传递的实参不是 1008,程序就不会输出任何信息。

添加大括号,使程序正确执行,示例:

说 明

运行本示例时,由于在标记 处调用方法outputTotalMoney()时,为其传递的实参是1001,所以执行outputTotalMoney()方法时,当程序执行到标记 处时,判断产品编号不是1008,不执行其后大括号内的代码,因此不会输出任何信息;如果在标记 处调用方法outputTotalMoney()时,将为其传递的实参改为 1008,程序将在控制台输出如图3.14 所示的正确结果。

图3.14 在控制台输出正确的产品信息 N9g5kUTIH1xWuWZR2Op1sqCqNmQIufTFVDu5wI4TVY/hCD6hnus3chOhW3tO+hA3

点击中间区域
呼出菜单
上一章
目录
下一章
×