290 likes | 465 Views
第 4 章 逻辑控制语句. if 语句 switch 语句 while 语句 do …while 语句 for 语句 跳转语句( break 语句和 continue 语句) 异常处理语句. if 语句. 条件语句用于测试条件。 if 语句是一个单一的选择语句,相当于口语中的“如果 …… 就 ……” 语句。. 语法:. if( < 逻辑表达式 > ) { JavaScript 代码 ; }. 如果要执行多个语句,必须将这些语句放在一对大括号 ( { } ) 内。但如果只要执行一个语句,则可以省略大括号. <HEAD>
E N D
第4章 逻辑控制语句 • if语句 • switch语句 • while语句 • do …while语句 • for语句 • 跳转语句(break语句和continue语句) • 异常处理语句
if语句 条件语句用于测试条件。 if语句是一个单一的选择语句,相当于口语中的“如果……就……”语句。 语法: if(<逻辑表达式>) { JavaScript代码; } 如果要执行多个语句,必须将这些语句放在一对大括号 ({ }) 内。但如果只要执行一个语句,则可以省略大括号
<HEAD> <SCRIPT LANGUAGE = "JavaScript"> function calcu() { var numb1= document.calc.num1.value; var numb2= document.calc.num2.value; if ((numb1!="") && (numb2!="")) { var total= parseFloat(numb1)*parseFloat(numb2); document.calc.result.value=total; if ((total>500) &&(total<=1000)) alert("购买总价超过500\n支付时将赠送超级Q币2枚!"); if ((total>1000) &&(total<=2000)) alert("购买总价超过1000\n支付时将赠送IBM光电智能鼠标1只!"); if ((total>2000)) alert("购买总价超过2000\n请直接与贵宾台联系!"); } } </SCRIPT> </HEAD>….其他代码略,同上例
if…else 语句 • if…else语句是两路选择语句,相当于口语中常用到的“如果……否则……”语句 语法: if(<逻辑表达式1>) { //JavaScript代码; } else { //JavaScript代码; }
<HEAD> <SCRIPT LANGUAGE = "JavaScript"> function calcu() { var numb1= document.calc.num1.value; var numb2= document.calc.num2.value; if ((numb1!="") && (numb2!="")) { var total= parseFloat(numb1)*parseFloat(numb2); document.calc.result.value=total; if ((total>500) &&(total<=1000)) alert("购买总价超过500\n支付时将赠送超级Q币2枚!"); if ((total>1000) &&(total<=2000)) alert("购买总价超过1000\n支付时将赠送IBM光电智能鼠标1只!"); if ((total>2000)) alert("购买总价超过2000\n请直接与贵宾台联系!"); } else alert("购买数量或竞拍价格没有填写\n请重新输入!"); } </SCRIPT> 提示没有填写购买数量或者竞拍价格?
else if语句 • if…else if…else语句可以提供多重选择,相当于口语中的“如果……如果……否则”,语法如下: • if( <逻辑表达式1>)语句1;else if( <逻辑表达式2> )语句2;else if( <逻辑表达式3> )语句3;……else 语句n;在这种情况下,每一级的布尔表述式都会被计算,若为真,则执行其相应的语句,否则执行else后的语句。
嵌套 if 语句 • if语句允许嵌套,在嵌套时要注意else与if的匹配, 语法: if (<逻辑表达式1>) { if (<逻辑表达式2>) { //JavaScript代码; } }
<SCRIPT LANGUAGE = "JavaScript"> function calcu() { var numb1= document.calc.num1.value; var numb2= document.calc.num2.value; if ((numb1!="") && (numb2!="")) { if (parseFloat(numb1)<0) { alert("竞拍价格不能小于零!\n请重填"); return; //函数返回,不再执行后面的代码 } if (parseFloat(numb2)<0) { alert("购买数量不能小于零!\n请重填"); return; } var total= parseFloat(numb1)*parseFloat(numb2); document.calc.result.value=total; ….. 购买数量无意中输入负数,出现 bug 怎么办?
switch 语句 语法: switch (表达式) { case 常量1 : JavaScript语句; break; case常量2 : JavaScript语句; break; ... default : JavaScript语句; }
..... var f=document.calc.pay.value; //支付方式代号 var grade; //折扣率 var total= parseFloat(numb1)*parseFloat(numb2); switch(parseInt(f)) { case 1: grade=0.6 ; //打6折优惠 break; case 2: …….同理其他方式打7折、八折 case 4: grade=0.9 ; //打9折优惠 break; default: alert("请重新选择支付方式!"); return; } var money=total*grade; //根据折扣率,计算实际总价 document.calc.result.value=money; alert("您享受了"+grade*10+"折优惠!"); ….. switch语句 下拉列表框pay的选项和值 银行转帐- 打6折 电话支付- 打7折 邮政汇款- 打8折 Q币支付- 打9折
循环语句 • 选择语句允许让JavaScript选择执行语句块,而循环语句可以让JavaScript重复执行某个语句块。JavaScript中的循环语句包括while语句、do…while语句、for语句和for…in语句四种。
循环语句---while语句 • while语句是在JavaScript中使用得最多的一种循环语句,其语法代码如下所示: while (<逻辑表达式>) { <语句块> }
循环语句---do…while语句 • do…while语句与while语句十分类似,也是一个循环语句,不同的是while语句是先判断逻辑表达式的值是否为true之后再决定是否执行循环体中的语句,而do…while语句是先执行循环体中的语句之后,再判断逻辑表达式是否为true,如果为true则重复执行循环体中的语句。语法如下: do <语句块> while(<逻辑表达式>)
循环语句---for语句 • for语句也是一种常用的循环语句,这种循环语句使用起来比while语句更为方便,因为for语句提供的是一种常用的循环模式,即初始化变量、判断逻辑表达式和改变变量值,这三个关键操作都可以在for语句中被明确定义。语法如下: for(初始化表达式;条件检测表达式;更新条件变量) { <语句块> }
循环语句--- for…in语句 • for…in语句提供的是一种与前面提到的循环语句都不同的另一种循环语句,这种循环语句可以遍历对象中的所有属性或数组中的所有元素。也常用来为对象的所有属性赋值。语法如下: for(variable in object) { statement } • variable可以是一个变量名、数组元素或对象属性,object是一个对象名、或计算结果为对象的表达式。
循环语句--- for…in语句 • For…in循环将对object对象的每一个属性都执行一次循环。循环过程中,先将object对象的一个属性名作为字符串赋给变量variable,这样在循环体内可以使用variable访问该对象属性。如: for(myprop in document) { document.write(“属性名:”+myprop+”;属性值:”+document[myprop]); } 注:不能设置循环变量和循环条件,无法控制循 环的执行顺序和次数。
标签语句 • 在JavaScript中,任何语句之前加上标识符和冒号就构成标签语句,标签语句的作用仅仅是标记该语句。在switch语句中的case语句和default语句,这些都是特殊的标签语句。语法格式如下: label: statement
跳转语句 • 在循环语句的循环体中,JavaScript允许在满足一定条件的情况下,直接跳出循环语句。或在满足一定条件的情况下开始一个新的循环,这种操作就需要用到跳转语句。JavaScript中的跳转语句包括break语句与continue语句两种。
跳转语句---break语句 • break语句的作用是跳出循环或结束switch语句,其语法代码如下所示: 1) break; 2) break labelName; 2)作用是跳到这个标签标记的语句尾部或终止这个语句。该语句必须是一个封闭语句,用大括号封装的语句块。
跳转语句---continue语句 • continue语句与break语句类似,也可以跳出一次循环。但与break语句不同的是,continue语句只会跳出一次循环,进入下一次循环,并且只能用于循环体内,而break语句跳出循环之后结束了整个循环。语法如下: 1) continue; 2) continue labelName; 2)用于重新开始那些不是直接封闭的循环。
跳转语句---continue语句 continue用于: 1)while循环 将会跳到循环体头部,再次检测循环的条件表达式。为真,则再次执行循环体内代码。 2)do…while循环将会跳到循环体底部,检测循环的条件表达式。为真,则再次执行循环体内代码。 3)for循环 将会首先计算增量表达式后再次检测循环的条件表达式。为真,则再次执行循环体内代码。 4)for…in循环 循环变量首先获得下一个属性名,然后开始新的循环。
异常处理语句 • 在JavaScript中,可以对产生的异常进行处理。所谓异常是指在程序中产生了某些异常情况或错误。处理这些异常情况或错误所使用的语句,就是异常处理语句。在JavaScript中的异常处理语句包括throw语句与try…catch…finally语句两种。throw(抛出)语句的作用是抛出一个异常。所谓的抛出异常,就是用信号通知发生了异常情况或错误。try…catch…finally语句是JavaScript中的用于处理异常的语句,该语句与throw语句不同。throw语句只是抛出一个异常,但对该异常并不进行处理,而try…catch…finally语句可以处理所抛出的异常。
异常处理语句 • 语法格式如下: try { statement(包含了throw语句的语句块) } catch(exception) //表示异常的变量 { statement //处理异常的语句块 }
异常处理语句 • 每个被抛出的异常都会产生一个Error对象的实例,该对象的引用可以作为catch子句的参数,如上面代码的exception参数,catch子句中的语句可以查看该对象的属性以获得更多信息。到目前为止,在ECMAScript标准中只有两个属性得到正式认可,即message和name。一些浏览器则实现了更多的属性:
异常处理语句 • <script language="JavaScript"> • try • { • colors[2] = "red"; • } • catch(e) • { • alert("An exception occured in the script.Error name: " + e.name • + ".Error message: " + e.message); • } • </script>
return语句 • return语句只能出现在function语句的函数体中,用于指定函数的返回值。return语句的语法代码如下所示: return 表达式; 注:一旦执行到return语句,函数的执行就停止了,函数体内return语句后面的代码将被忽略。(见例4-11)
with语句 • JavaScript语言是面向对象的语言,因此,在对象的属性调用方面有可能会多次使用到对象属性存取运算符(.)。如果使用with语句,就可以简化对象属性调用的层次。语法格式为: with(object) { statement } 例如:with(document.forms[0]) { name.value=“”; password=“”; }
小结 • 本章中主要介绍了JavaScript中的语句,JavaScript的所有功能都是通过语句来实现的。JavaScript中的语句可以简单地分为表达式语句、语句块、选择语句、循环语句、跳转语句、异常处理语句和其他语句几种。熟练掌握这些语句,是学习JavaScript必不可少的基础。