前言
在 JavaScript 中,流程控制语句主要有:if语句、switch语句、while语句、do-while 语句、for 语句,以及专门用于对象的 with 语句等。本文介绍常用语句及其变种的用法。本文内容是JavaScript程序结构的框架,也是JavaScrip程序设计的基础。学好流程控制语句,不仅是JavaScript程序设计的基础,也是很好理解本系列后面文章中示例代码的前提。
2.1 if 语句
本文实例给出 if 语句及其嵌套语句的使用方法。程序要求用户输入一个数字,根据输入内容的不同,给出不同的提示信息。
要点
本节代码主要使用了if语句的嵌套和alert()方法,主要功能和用法如下。
- if 语句用于进行条件判断,如果判断语句结果为真(true),则执行其后的语句,否则,if 后的语句将被忽略。
- if语句可以嵌套使用,但须使用“{}”标明层次关系,以免造成人为错误。
- alert()方法用于弹出一个提示对话框,显示相应的提示信息。如果输出的字符串中要使用 HTMI 元素进行文字的格式化输出,用到的 HTML 元素要使用转义字符进行替换。
<script language="JavaScript">
//判词输出函数
function NumSubmit()
{
InputNum=forml.Num.value;
if(isNaN(InputNum))//如果输入的内容不是数值
{
alert("输入不是数值!");
}
else{
//如果输入内容为空
if (InputNum=="" )
{
alert("输入不能为空!");
}
else
{
//如果输入了一个数值
if (InputNum<1||InputNum>5)//如果输入的数值小于1或大于5
{
alert("输入的数值超出范围!");
}
else //如果输入值在1和5之间
{
if (InputNum==1) //如果输入1
{
alert("可叹停机德,堪怜咏絮才。\n\n玉带林中挂,金簪雪里埋。");
}
if (InputNum==2) //如果输入2
{
alert("二十年来辨是非,榴花开处照官闹。\n\n三春争及初春景虎兔相逢大梦归。");
}
if(InputNum=-3) //如果输入3
{
alert("才自精明志自高,生于末世运偏消。\n\n清明涕送江边望,千里东风一梦遥。");
}
if(InputNum==4) //如果输入4
{
alert("子系中山狼,得志便猖狂。\n\n 金闺花柳质,一载赴黄粱。");
}
if(InputNum==5) //如果输入5
{
alert("勘破三春景不长,缁衣顿改昔年妆。\n\n可怜绣户侯门女,独卧青灯古佛旁。");
}
}
}
}
}
</script>
分析:
- (1)程序使用一个文本框输入数值,并通过一个提交按钮的onclick方法调用函数
- NumSubmit(),用以显示输入数值对应的判词。
- (2)在 NumSubmit()函数中,首先通过文本框的 value 属性调用用户的输入内容,并将其存入 InputNum 变量中;随后,对用户输入内容分多种情况进行处理:空值、非数值、超出范围的数值、允许范围内的各数值。
- (3)在区别空值、非数值、超出范围的数值等不同情况时,使用了if...else 语句的嵌套形式,在区分允许范围内的各数值时,仅使用了if语句。
- (4)在区分允许范围内的各数值时,也可使用switch语句直接对不同情况进行处理。
2.2 switch 语句
本节实例给出switch语句的使用方法。将上一节的代码进行了改写。程序要求用户输入一个数字,根据输入内容的不同,给出不同的提示信息。
分析:
- 本节代码主要使用了switch语句和 alert()方法,switch语句主要功能和用法如下。
- switch 语句用于将一个表达式的结果同多个值进行比较,并根据比较结果选择执行。
- 哪条语句。如果没有符合条件的值,则跳过switch语句。
- 在 switch语句内部,多个值与表达式进行比较,通过case语句实现;多数情况下,为涵盖所有可能的值,还使用一个 default 语句,匹配前面所有 case 语句值以外的其他值,相当于“如果以上都不满足,则……”
- switch语句内部的各个case子语句中,都要以“break;”语句结束,这是因为:case语句相当于定义了一个标记位置,根据 switch 表达式的结果,直接跳转到第一个匹配的标记位置处,开始顺序执行后面所有的程序代码,包括后面其他 case 下面的代码,直到遇到 break 语句或者函数返回语句。由此也可知道,如果语句中包含了'defaule:”语句,则该语句后的“break;”语句可以省略。
- alert()方法用于弹出一个提示对话框,显示相应的提示信息。如果输出的字符串中。要使用 HTML 元素进行文字格式化,用到的 HTML 元素要使用转义字符进行替换。
<script language="JavaScript">
function NumSubmit()
{
var oForm = docum