第5章JavaScript的流程控制语句
因为JavaScript是一种完整的语言,所以它也可以控制程序的流程,实现分支选择和循环判断。分支选择就是有多条路可以走,但是程序只能走一条路,如今天如果下雨就在家看电影,如果不下雨就出去逛街,是否下雨是一个判断条件,看电影和逛街是两条“路”,但是只能走一条路。循环判断语句是根据一个条件来判断,是否重复执行某一条路。
本章主要涉及到的知识点有:
* 掌握判断语句的执行顺序
* 学习if判断语句
* 学习switch多条件判断语句
* 掌握循环语句的执行顺序
* 学习while循环语句
* 学习for循环语句
5.1分 支 语 句
在编写一个程序时,通常需要根据特定的条件执行不同的语句,或者一段语句。比如性别为“男”时,称呼用户为“先生”;性别为“女”时,称呼用户为“女士”。前面的章节里也有很多类似的例子,比如在第2章里一个页面上,在性别上选择“男”或者“女”时,页面本身将会根据实际情况显示,或者隐藏某些页面元素,同时在计算时的算法也有所不同。摘取其中的一段代码如下所示:
01 //根据不同情况作相应计算
02 if( sex1 == true ){
03//选择了“男”时
04result = yourmoney - yoursmoke - yourwine;
05 }
06 if( sex2 == true ){
07//选择了“女”时
08result = yourmoney - yourface - yourclothe;
09 }
可以看到上面使用了if语句来进行条件判断,但是分支语句不仅仅只有这些,本节将会依次介绍。
5.1.1使用if实现条件判断
在条件语句中,if语句是使用得*广泛也是比较简单的一个语句了,if语句从英文的字面意思来看,其意义也很明确,就是“如果”,也可以这样来理解程序,看下面的代码:
if( i > 2 ){
a = i * 10;
}
上面的代���的意义是,如果变量i大于2,那么变量a的值就是i与10的乘积。可见,if语句是很好理解的。if语句的语法如下所示:
if( 条件表达式 ){
语句或语句块;
}
从上面的语法可以看出来,if语句包含3个部分:if关键字、包含在圆括号里的条件表达式,以及包含在大括号里的语句或语句块,这些语句或者语句块是在条件表达式为true时需要执行的。如果条件表达式的值为false,那么大括弧里的语句或语句块是不会被执行的。同时,在if语句前后可能还有其他的语句,前后的语句都不会受if语句里条件表达式的影响,即使if语句设定的需要执行的语句,或者语句块因为条件表达式为false,导致无法执行,if语句后的其他语句仍然会继续执行。看下面的代码段:
01
在第8行有一条“alert(a);”语句,在if语句之后。通过运行代码可以看到,if语句执行后由于条件表达式为true,因此a的值被改变了,结果如图5.1所示。
图5.1if语句示例
在JavaScript里,如果条件里需要执行的语句只有一句,则可以省略外面的大括弧,上面的条件部分代码同样可以写成如下的样子:
f( i > 2 )
a = i * 10;
按照上面的规律,可以循环嵌套,也就是说,如果if语句里面的代码又是if语句,仍然可以使用同样的规则,看下面的代码:
if( i > 2 )
if( j < 3 )
a = i * 10;
上面也是正确的写法,但是,为了使程序可读性更强,*好还是不要省略大括弧,**的写法如下所示:
if( i > 2 ){
if( j < 3 ){
a = i * 10;
}
}
在条件判断里,通常在if的条件表达式里不仅仅使用一个表达式,还可以用多个子表达式联合起来进行条件判断,这需要使用逻辑运算符,看下面的代码:
01
上面的代码段第6行使用逻辑与运算符“&&”,将两个子表达式“i < 4”和“j >
5”连接为一个整体。只有当两个子表达式都为true时,整个表达式的值才为true。当需要判断的条件较多时,可以并列使用多个if语句来进行控制。下面通过一个实例来结束本小节的内容。
【范例5-1】这个实例是一个在线的小测试程序。HTML文件见5-1.html,代码如下 所示:
01
02
03
04
38
39
40
测试题
41
________________________________________
42 1、2016年奥运会在哪个城市举行?
43
图5.2if语句测试题示例
if( 条件表达式 ){
条件表达式为true时语句或语句块;