JavaScript程序设计:基础·PHP·XML
上QQ阅读APP看书,第一时间看更新

3.3 二路选择结构:if...else语句

有时候要编写这样的代码,如果一件事情发生就执行它,如果不发生就不执行。例如,如果你正在创建一个游戏,可能想要玩家在积满20分或更多分时就能获得一份奖赏;如果分数不够,就不发生什么事情,并且游戏继续。然而,如同满足条件一样,你也经常希望如果条件不满足时也要发生一些事情。在例3.1中,如果录入的温度不小于32,就不做任何事情。在这种情况下,如果用户重复地单击按钮并且每次录入从不小于32,那么每次都不发生任何事情,这样将导致用户可能认为程序没有正常工作。为了避免这种情况,你可以增加如果测试条件不满足时要执行的else子句。这种选择结构的一般形式如下:

注意,在if子句和else子句中的多条语句都要用花括号括起。例3.3把第二个选项加入例3.2的代码中,显示当温度是32°或更高时要显示的信息。

例3.3 使用if...else结构 这个例子显示一组当温度小于32°时要执行的语句和另一组当温度等于或大于32°时要执行的语句。

在这个例子中,如果用户录入小于32的温度,那么显示将与例3.2相同。

但是,如果用户录入32或者任何更大的数字,显示将会如下图所示。

例3.4使用if...else结构,并且包括不管条件是否满足最后都要执行的语句。

例3.4 额外加分 这个例子将显示学生的考试成绩。考试有21道题,基本分数基于前20道题,每答对一题给5分。最后一题是加分题,分值是6~10分。另一种加分方式是学生在考试时上交了与考试相关的学习指南,就加5分。首先,教师将会录入学生的基本考试得分,然后录入额外加分。程序将计算并且显示学生的最后考试成绩。

这个例子说明了以下几件事情:

·第7和12行使用函数parseInt()保证将教师的录入处理为数字。

·没有使用花括号括起if子句和else子句中的语句,因为这两个子句都只包含一条语句。可以添加花括号,但是这里不是必需的。

·因为每个子句只包含一条可执行语句,所以不管执行哪个子句,总是要执行第13和14行。

如果你录入这些代码,最初的页面看起来像这样:

如果一个学生得到基本考试分数的83%,并且从第21题获得8分,那么输出将会看起来像这样:

如果一个学生得到基本考试分数的83%,没有回答第21题,但提交了学习指南,那么输出将会看起来像这样:

如果一个学生得到基本考试分数的83%,没有回答第21题,也没有提交学习指南,那么输出将会看起来像这样:

然而,如果一个学生既回答了第21题又提交了学习指南,那会怎么样呢?我们将在本章后面讨论复合条件时处理这个问题。

3.3节检查点

3.12 if和else子句什么时候需要花括号?

3.13 修改下列代码片断并且增加代码,使得如果孩子太年轻而无法得到驾驶学习执照时,将显示第二条信息。

3.14 编写一个函数,让用户录入两个数,然后问用户是否想要加或乘这两个数。使用if...else结构加或乘这两个数。如果用户不想将这两个数相加,程序将会将它们相乘。

3.15 为检查点3.14的程序添加代码,使用不在if...else结构中的一条语句显示计算结果。再添加第二条语句,告知用户这两个数是什么以及是使用加运算还是乘运算(提示:使用第二种选择结构)。