3.3.2 if…else 语句
现在这个程序能对除数为 0 的情况进行检查了,但是还不够好,因为当除数为 0 时,没有任何的结果输出,对于程序不太了解的人会产生疑问。更好的设计应该是当除数不为 0 时,程序打印输出正常的结果,除数为 0 时,打印一条信息明确告之用户。
if…else 语句和 if 语句相比,多了 else 部分,其实就是多了一条执行路径,形成了二选一的流程执行情形。就好像我们走到了一个分岔口,是该往左走还是往右走呢?
if…else 语句的使用格式如下:
if(表达式) 语句 1 else 语句 2
当表达式的值为真时,执行 if 后面的语句 1;当表达式的值为假时,执行 else 后面的语句 2。对于语句 1 和语句 2 来说,无论何种情况,其中之一肯定会被执行,但它们两个永远不会同时被执行。其执行流程如图 3.2 所示。
图 3.2 if…else 语句执行流程
利用 if…else 语句可以很好地解决我们前面提到的问题,关键部分代码如下:
我们将原先代码中的 if 语句部分改用 if…else 语句,其中 if 部分的代码和之前没有变化,而在 else 部分使用了 printf 函数调用语句来打印除数不能为 0 的提示信息。下面显示了当除数为 0 时,程序的运行结果:
Please input two integer: 35 0 Sorry! The divisor cannot be 0.
这里需要再强调一下,由于 else 部分只有一条语句,所以这里没有使用复合语句。不过并非不可以使用复合语句,像下面这样也是可以的:
即用一对大括号把 printf 函数调用语句括起来,这样就构成了复合语句,虽然这个复合语句中只有一条语句。也就是说,对于只有一条语句的情况,既可以采用单条语句的形式(不使用大括号),也可以采用复合语句的形式(使用大括号),推荐使用大括号,这样对代码的后续增加和维护都更方便。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论