JavaScript脚本中的语句一般是按照写的顺序来运行的。这种运行称为顺序运行,是程序流的默认方向。与顺序运行不同,另一种运行将程序流转换到脚本的另外的部分。也就是,不按顺序运行下一条语句,而是运行另外的语句。要使脚本可用,该控制的转换必须以逻辑方式执行。程序控制的转换是基于一个“决定”,这个“决定”结果是真或假(返回 Boolean 型 true 或 false)。 创建一个表达式,然后测试其是否为真。主要有两种程序结构实现本功能。
第一种是选择结构。用来指明两种程序流方向,在程序中创建一个交叉点(像岔路)。在JavaScript中有四种选择结构可用。
第二种类型的程序控制结构是循环结构。使用循环结构来指明当某些条件保持为真时要重复的动作。当控制语句的条件得到满足时(通常在某些迭代的特定数字后),控制跳过循环结构传递到下条语句。在 Jscript 中有四种循环结构可用。
通过嵌套和堆栈选择、循环控制结构,可以创建相当复杂的脚本。
第三种形式的结构程序流由意外处理给出,在此不作讨论。
在编写代码时,经常需要根据不同的条件完成不同的行为。可以在代码中使用条件语句来完成这个任务。
在 JavaScript 中,我们可以使用下面几种条件语句:
if 语句
在一个指定的条件成立时执行代码。
if...else 语句
在指定的条件成立时执行代码,当条件不成立时执行另外的代码。
if...else if....else 语句
使用这个语句可以选择执行若干块代码中的一个。
switch 语句
使用这个语句可以选择执行若干块代码中的一个。
If 语句
如果希望指定的条件成立时执行代码,就可以使用这个语句。
语法:
if
(条件)
{
条件成立时执行代码
}
注意:请使用小写字母。使用大写的 IF 会出错!
<script type="text/javascript">
//Write a "Good morning" greeting if
//the time is less than 10
var d=new Date()
var time=d.getHours()
if
(time<10)
{
document.write("<b>Good morning</b>")
}
</script>
<script type="text/javascript">
//Write "Lunch-time!" if the time is 11
var d=new Date()
var time=d.getHours()
if
(time==11)
{
document.write("<b>Lunch-time!</b>")
}
</script>
注意:请使用双等号 (==) 来比较变量!
注意:在语法中没有 else。仅仅当条件为 true 时,代码才会执行。
If...else 语句
如果希望条件成立时执行一段代码,而条件不成立时执行另一段代码,那么可以使用 if....else 语句。
语法:
实例if
(条件) { 条件成立时执行此代码 }else
{ 条件不成立时执行此代码 }
<script type="text/javascript"> //If the time is less than 10, //you will get a "Good morning" greeting. //Otherwise you will get a "Good day" greeting. var d = new Date() var time = d.getHours()if
(time < 10) { document.write("Good morning!") }else
{ document.write("Good day!") } </script>
If...else if...else 语句
当需要选择多套代码中的一套来运行时,请使用 if....else if...else 语句。
语法:
实例:if
(条件1) { 条件1成立时执行代码 }else if
(条件2) { 条件2成立时执行代码 }else
{ 条件1和条件2均不成立时执行代码 }
<script type="text/javascript"> var d = new Date() var time = d.getHours()if
(time<10) { document.write("<b>Good morning</b>") }else if
(time>10 && time<16) { document.write("<b>Good day</b>") }else
{ document.write("<b>Hello World!</b>") } </script>
Switch 语句
如果希望选择执行若干代码块中的一个,你可以使用 switch 语句:
语法:
switch(n)
{case 1:
执行代码块 1break
case 2:
执行代码块 2break
default:
如果n即不是1也不是2,则执行此代码 }
工作原理:switch 后面的 (n) 可以是表达式,也可以(并通常)是变量。然后表达式中的值会与 case 中的数字作比较,如果与某个 case 相匹配,那么其后的代码就会被执行。break 的作用是防止代码自动执行到下一行。
实例:
<script type="text/javascript"> //You will receive a different greeting based //on what day it is. Note that Sunday=0, //Monday=1, Tuesday=2, etc. var d=new Date() theDay=d.getDay()switch (theDay)
{case 5:
document.write("Finally Friday")break
case 6:
document.write("Super Saturday")break
case 0:
document.write("Sleepy Sunday")break
default:
document.write("I'm looking forward to this weekend!") } </script>
在编写代码时,常常希望反复执行同一段代码。我们可以使用循环来完成这个功能,这样就用不着重复地写若干行相同的代码。
JavaScript 有两种不同种类的循环:
for
将一段代码循环执行指定的次数
while
当指定的条件为 true 时循环执行代码
for 循环
在脚本的运行次数已确定的情况下使用 for 循环。
语法:
for
(变量=开始值;变量<=结束值;变量=变量+步进值)
{
需执行的代码
}
实例:
解释:下面的例子定义了一个循环程序,这个程序中 i 的起始值为 0。每执行一次循环,i 的值就会累加一次 1,循环会一直运行下去,直到 i 等于 10 为止。
注释:步进值可以为负。如果步进值为负,需要调整 for 声明中的比较运算符。
<html>
<body>
<script type="text/javascript">
var i=0
for (i=0;i<=10;i++) { document.write("The number is " + i) document.write("<br/>") }
</script>
</body>
</html>
结果:
The number is 0 The number is 1 The number is 2 The number is 3 The number is 4 The number is 5 The number is 6 The number is 7 The number is 8 The number is 9 The number is 10
while 循环
while 循环用于在指定条件为 true 时循环执行代码。
语法:
while
(变量<=结束值)
{
需执行的代码
}
注意:除了<=,还可以使用其他的比较运算符。
实例:
解释:下面的例子定义了一个循环程序,这个循环程序的参数 i 的起始值为 0。该程序会反复运行,直到 i 大于 10 为止。i 的步进值为 1。
<html>
<body>
<script type="text/javascript">
var i=0
while (i<=10) { document.write("The number is " + i) document.write("<br/>") i=i+1 }
</script>
</body>
</html>
结果:
The number is 0 The number is 1 The number is 2 The number is 3 The number is 4 The number is 5 The number is 6 The number is 7 The number is 8 The number is 9 The number is 10
do...while 循环是 while 循环的变种。该循环程序在初次运行时会首先执行一遍其中的代码,然后当指定的条件为 true 时,它会继续这个循环。所以可以这么说,do...while 循环为执行至少一遍其中的代码,即使条件为 false,因为其中的代码执行后才会进行条件验证。
语法:
do
{ 需执行的代码 }while
(变量<=结束值)
实例:
<html>
<body>
<script type="text/javascript">
var i=0
do { document.write("The number is " + i) document.write("<br/>") i=i+1 } while (i<0)
</script>
</body>
</html>
结果:
The number is 0
©版权所有: 淮安深度人工智能科技有限公司2020, 备案号:苏ICP备2020056902号-2 | 技术支持:淮阴工学院计算机与软件工程学院《Web开发技术》教学团队