欢迎光临散文网 会员登陆 & 注册

第 4 讲:if 条件语句

2021-08-23 07:52 作者:SunnieShine  | 我要投稿

if 关键字的用法

接下来,我将为你讲解的是一种新的执行语法模式:条件判断。

在前文的介绍里,我们可以使用运算符和类型声明的表达式,来获取一些数据的数值,并输出。但整个程序的写法格式是这样的:

这样仅仅能够写出一些简单的执行语句。今天我们来学习一种跳转模式的语句:if 条件判断。if 条件判断的用法是这样的:

可以根据注释内容看到,只要条件满足要求的,将会走第一个大括号的内容;如果不满足要求,将会走第二个大括号的内容。例如

可以从这里看到,显然 a + b 结果是大于 4 的,所以满足条件,故 c 的结果应为 a + b,输出的结果就是 5。当然,这里就需要你学习一些语法约定和书写格式规范。当 ifelse 块里只有一句话的时候,大括号是可以省略的,但最好使用缩进格式书写,分清楚层次,这样可以轻松辨别代码的逻辑和控制的部分,即:

三目运算符:条件运算

我们可以使用三目运算符 ?: 来判别一个结果。类似上文的逻辑,在 ? 前面写条件,在 ?: 之间写条件成立的时候的结果,而 : 后写条件为假的时候的结果。如:

这样就把之前的 if-else 判断模式简写为这样。它们是等价的。


嵌套 if

之所以之前叫大家将 if 内部的执行内容进行缩进,是因为 if 的执行逻辑是可以嵌套的。

类似于上述逻辑,我们可以先看条件判断。由于 a + b 的结果是 5 而不是 3,所以它只能走 else 这一部分的执行内容。于是得到 c 为 0,所以输出结果为 0。

串联 if

有时候,当分支不止一个的时候,我们可以使用把 if 的声明串联的模式来执行一些操作。

显然,这种写法太丑了。首先,我们认为一个分号就是一句话,现在引入了块的说法,所以一个大括号就是一句话。那么 a == 2 条件的 else 部分就只有一句话,我们可以省略这一个大括号;而且 c == 3 条件里的 else 分支的大括号也可以被省略,所以就变为这样:

不过,还是很丑陋。不过我们发现,既然 elseif 语句还有 else 完全可以连起来,那么何不把它们直接串联起来呢?

这样不就很好看了吗。这个写法就是 if 串联的写法。

嵌套 if 时的三目运算

前文用到的这个示例

可以被简写为

请注意,三目运算符的查找逻辑是从右到左的。所以它会有先发现到 (a - b == 3 ? a * b : a / b) 表达式是完整的整体,所以这个括号是可以不要的,即:

数值条件

最后要说明一下的是,任意一个整数数值都可以作为条件使用,写在 if 语句的小括号里。在前文里,我们说到,一个整数数值,只要它不是 0,我们就认为这个数值表示的条件是“正确的”的意思,而是 0 则表示这个条件是“不成立的”、“错误的”的意思。所以,如果我们想要把一个数值作为真假两种情况的判断的话,我们可以这么写:

这样,你就能得到 17 is a prime 的输出信息。当然,你甚至也可以为 isPrime 变量的条件处添加前缀取反符号 ! 来表示逻辑取反。

不过,从这个角度来看,isPrime 单独作为条件,可以等价用判断语句表示为 isPrime != 0,而 !isPrime 则可以等价表示为 isPrime == 0。所以推广到任意情况下:

  • digit == 0 简写作 !digit

  • digit != 0 简写作 digit

当然,这两种说法仅用于 if 的条件断言(小括号)处。


第 4 讲:if 条件语句的评论 (共 条)

分享到微博请遵守国家法律