返回介绍

3.3.2 if…else 语句

发布于 2025-04-11 22:32:53 字数 1357 浏览 0 评论 0 收藏 0

现在这个程序能对除数为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。