1.条件语句(if-else)
通常在写代码时,您总是需要为不同的决定来执行不同的动作。因此你需要利用条件语句来使你的程序做出正确决定并且执行正确的动作。
JavaScript 支持的条件语句用于基于不同的条件来执行不同的动作。
JavaScript 支持如下形式的if-else 语句:
-
if statement
-
if...else statement
-
if...else if... statement
1)if语句
if语句是基本控制语句,能使JavaScript做出决定并且按条件执行语句
语法如下:
if (expression){
Statement(s) to be executed if expression is
true
}
这里JavaScript expression是需要判断的。如果返回值是true,执行给定的statement(s)。如果表达式的值是false,不会执行任何语句。多数情况下,你可能会用比较运算符来做决定。
例子:
var age = 20;
if ( age > 18 ){
document.write("<b>Qualifies for driving</b>");
}//Qualifies for driving
2) if...else 语句
if...else 语句是另一种控制语句,它能使 JavaScript 选择多个代码块之一来执行。
语法:
if (expression){
Statement(s) to be executed if expression is
true
}else{
Statement(s) to be executed if expression is
false
}
这里 JavaScript expression 是需要判断的。如果返回值是 true,执行if 代码块给定的statement(s)。如果表达式的值是 false ,则执行else 代码块给定的statement(s)。
例子:
var age = 15;
if(age > 18){
document.write("<b>Qualifies for driving</b>");
}else{
document.write("<b>Does not qualify for driving</b">
}//Does not qualify for driving
3) if...else if...语句
if...else if... 语句是一种推进形式的控制语句, 它能使JavaScript 选择多个代码块之一来执行。
语法:
if (expression 1){
Statement(s) to be executed if expression 1
is true
}else if (expression 2){
Statement(s) to be executed if expression 2
is true
}else if (expression 3){
Statement(s) to be executed if expression 3
is true
}else{
Statement(s) to be executed if no expression
is true
}
这段代码没什么特别的地方。它就是一系列 if 语句,只是每个 if 语句是前一个 else 语句的一部分。语句根据正确的条件被执行,如果不满足任何一个条件则执行 else 代码块。
例子:
var book = "maths";
if(book == "history"){
document.write("<b>History Book</b>");
}else if(book=="maths"){
document.write("<b>Maths Book</b>");
}else if(book=="economics"){
document.write("<b>Economics Book</b>");
}else{
document.write("<b>Unknown Book</b>");
}//Maths Book
2.条件语句(switch-case)
你可以像前面章节那样用多个 if…else if 语句来执行多个代码块。然而,这不是最佳解决方案,尤其是当所有代码块的执行依赖于单个变量值时。
从 JavaScript 1.2 开始,你可以使用一个 switch 语句来处理上面提到的问题,而且这样做的效率远高于重复使用if…else if 语句。
语法:
switch 语句的基本语法是给定一个判断表达式以及若干不同语句, 根据表达式的值来执行这些语句。编译器检查每个case 是否与表达式的值相匹配。如果没有与值相匹配的,则执行缺省条件。
switch (expression){
case condition 1: statement(s) break;
case condition 2: statement(s) break;
...
case condition n: statement(s) break;
default: statement(s)
}
break 语句用于在特殊case 的最后终止程序。如果省略掉 break,编译器将继续执行下面每个case 里的语句。
工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个case 运行。default 关键词来规定匹配不存在时做的事情;相当于if 里的else。
我们将在循环控制那一章节里继续讨论break 语句。
var grade='A';
document.write("Entering switch block<br/>");
switch (grade){
case'A':
document.write("Good Job<br/>");
break;
case'B':
document.write("Pretty good<br/>");
break;
case'C':
document.write("Passed<br/>");
break;
case'D':
document.write("Not so good<br/>");
break;
case'F':
document.write("Failed<br/>");
break;
default:
document.write("Unknown grade<br/>")
}
document.write("Exiting switch block");
// Entering switch block
// Good job
// Exiting switch block
看一下没用break语句的情况:
var grade='A';
document.write("Entering switch block<br/>");
switch (grade){
case'A':
document.write("Good job<br/>");
case'B':
document.write("Pretty good<br/>");
case'C':
document.write("Passed<br/>");
case'D':
document.write("Not so good<br/>");
case'F':
document.write("Failed<br/>");
default:
document.write("Unknown grade<br/>")
}
document.write("Exiting switch block");
// Entering switch block
// Good job
// Pretty good
// Passed
// Not so good
// Failed
// Unknown grade
// Exiting switch block