阅读 ‧ 电子书库 花 括 号
从技术角度讲,if else语句作为单个语句,所以不需要括上花括号。外部if也是单个语句,所以也不需要花括号。然而,当语句很长时,花括号使人更容易清楚发生了什么,并且当后来将其他语句加到if或循环中时它们提供了保护。

第二,怎样知道一个数是素数呢?如果num是素数,程序流程永远也进不了if语句中。为了解决这个问题,可以在循环外设置一个变量为某一值,比方说1,在if语句中将这个变量重设为0。那么,循环完成后,可以检查该变量是否仍然是1。如果是,则从没进入过if语句,这个数是素数。这样的变量通常被称为标志(flag)。

传统上,C习惯用int类型作为标志,但是新型的_Bool型变量极佳地符合了这种需求。而且,通过包含stdbool.h头文件,可以用bool代替关键字_Bool表示这种类型,并用标识符true和false代替1和0。

程序清单7.5结合了所有这些想法。为了扩大范围,程序用类型long代替类型int(如果系统不支持_Bool类型,可以让isPrime使用int类型并用1和0代替true和false)。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

程序清单7.5 divisors.c程序

阅读 ‧ 电子书库

注意,该程序在for循环控制表达式中使用了逗号运算符,以针对每个新输入的数将IsPrime初始化为true。

下面是一个运行示例:

阅读 ‧ 电子书库

这个程序将会把1判断为素数,而实际上,1不是素数。下一部分将要介绍的逻辑运算符将使你能够把1排除在素数之外。