引言
JavaScript 和所有高级程序设计语言一样提供了选择语句,用来在两个或更多可选择的流程中做出选择。
例如,在计算六边形面积的题目中,如果用户输入的数字是负数,我们希望能弹出警告框提示用户输入的数
字不正确,只有当用户输入的数字是正数时才计算面积。
可以书写这样的 if 语句来解决这个问题:
var r = Number(prompt("请输入半径"));
if(r <= 0){
alert("你输入的半径不正确!");
}else{
var area = 3.14 * r * r;
alert(area);
}
if 是“如果”的意思,else 是 “否则”的意思,这段程序如同我们日常说话一样非常好理解:如果用户
输入的数值小于等于零,则弹出警告框提示用户输入的半径不正确,否则计算它的面积并弹出结果。
“如果”和“否则”让程序增加了一些“智能”,程序不是一成不变地一行一行执行语句了,它会根据条件
满足与否,来选择执行一些语句,或执行另一些语句。
基本使用
看一个最简单的案例:用户输入一个数字,如果这个数字是偶数,则弹出对话框显示“偶数”,否则弹出对
话框显示“奇数”。
代码如下:
var a = Number(prompt("请输入一个数字"));
//判断是否除以 2 余数是 0
if(a % 2 == 0){
alert("偶数");
}else{
alert("奇数");
}
if 语句体非常简洁清晰,即使是初学者也会一目了然本程序的意思:如果变量 a 除以 2 的余数是 0,则弹
出“偶数”,否则弹出“奇数”。
if 语句是最简单的选择语句,也称条件分支语句,它的语法是:
if(测试条件){
测试条件为 true 的时候执行的语句
}else{
测试条件为 false 的时候执行的语句
}
if 关键字后面是一个圆括号,圆括号中是测试条件。测试条件一般来说是一个表达式,它的求值结果必须
是布尔值。如果测试条件结果是 true,则执行第一个花括号里面的语句;如果测试条件是 false,则执行 else
后面的花括号中的语句。无论哪个花括号中的语句执行完毕之后,都将之后 if 语句体后面的语句。
JavaScript 中 if 语句语法和 C 语言、Java 是完全相同的,有这两门编程经验的同学是非常适应的。如果
是编程初学者,请务必注意 if 语句体语法中的圆括号和花括号的位置,注意代码缩进。
if-else 语句使程序中的语句并不是一成不变地一条条按顺序执行了。一些语句会选择执行,使程序出现了
不同的执行路线
即:不会没有 alert()语句执行,也不会两条
alert()都执行。至于执行哪个大括号体,需要看条件为 true 还是 false。
选择语句也叫作“条件分支语句”,是因为它使程序出现了不同的分支,程序会根据测试条件为 true 或者
false 选择不同分支执行
举例:根据年龄判断是否可以申领驾照
我们再来看一个的题目:用户输入年龄,判断用户是否可以申领驾照。我国相关法律法规规定,申领驾照的
条件是年龄必须为 18 到 70 岁。
在这个题目中,并没有出现“如果”字样,但出现了“判断”字样。其实“判断”也暗示了其中有“如果”
的逻辑,需要使用 if 语句。
本案例程序如下:
//让用户输入年龄
var age = Number(prompt("请输入年龄"));
//判断
if(age >= 18 && age <= 70){
alert("可以考取驾照");
}else{
alert("年龄不符合要求");
}
注意,JavaScript 中判断一个数字介于两个数字之间时,绝对不能“连比”:
18 <= age <= 70
这样的写法是错误的。这是因为程序会先计算 18 <= age 的值,得到某个布尔值,再用这个布尔值与 70
进行比较,这是不合理的。
判断某数是否处于某区间内,要用且运算符&&表示:
age >= 18 && age <= 70
这个表达式表示“年龄大于 18 岁且年龄小于 70 岁”,即年龄在 18 岁到 70 岁的范围。