SVSE7.0-S2美国硅谷SVSE中国WEARECHANGING第二章JavaScript流程控制和函数SVSE7.0-S2美国硅谷SVSE中国WEARECHANGING掌握if语句和switch语句掌握循环控制语句3种结构掌握常用的内置函数掌握函数的定义与调用本章目标SVSE7.0-S2美国硅谷SVSE中国WEARECHANGING◦简单if语句◦If…else语句◦多重if语句if语句if(条件表达式){语句块;}if(条件表达式){语句块1;}else{语句块2;}if(条件表达式){语句块1;}elseif(条件表达式2){语句块2;}…elseif(条件表达式n){语句块n;}else{语句块n+1;}SVSE7.0-S2美国硅谷SVSE中国WEARECHANGING4if-else示例输入分数:50显示考试不及格对话框scripttype=text/javascript!--varscore;//定义变量score代表分数score=prompt(请输入成绩,);//使用window对象prompt函数,弹出一个输入框if(score=60)//判断分数是否=60,返回true或false{alert(考试及格!);//如果分数=60为true则显示及格的消息}else{alert(考试不及格!);//如果分数60则显示不及格的消息}//--/scriptSVSE7.0-S2美国硅谷SVSE中国WEARECHANGING多重if示例scripttype=text/javascript!--varscore;score=prompt(请输入成绩,);if(score=90)//判断分数是否=90,返回true或false{alert(你的成绩一级棒啊!);}elseif(score=80&&score90){alert(你的成绩优秀啊!);}elseif(score=70&&score80){alert(你的成绩优良啊!);}elseif(score=60&&score70){alert(你的成绩一般般啊!);}else{alert(你的成绩很差啊!);}//--/script输入不同分数,显示不同的对话框这里我们碰到了短路与和短路和的问题SVSE7.0-S2美国硅谷SVSE中国WEARECHANGINGswitch多分支语句switch语句和示例switch(表达式){case常量1:JavaScript语句1;break;case常量2:JavaScript语句2;break;...default:JavaScript语句3;}scripttype=text/javascript!--vargrade;//定义变量grade代表学期号grade=prompt(请输入学期号(1-3):,);//返回字符串类型switch(grade){case1://条件是字符串类型alert(本学期我们学习课程是有HTML,Java基础,SQL基础!);break;case2:alert(本学期我们学习课程是有JS,J2SE,SQL高级!);break;case3:alert(本学期我们学习课程是有Struts,Spring,Hibernate!);break;default:alert(你输入的学期号有误!);}//--/scriptSVSE7.0-S2美国硅谷SVSE中国WEARECHANGING7while(条件表达式){语句;}while循环do-while循环for循环循环语句do{语句;}while(条件表达式);for(初始化;条件;增量){语句;}SVSE7.0-S2美国硅谷SVSE中国WEARECHANGING82008年全球福布斯财富排行榜(前5位)循环输出字符打印99乘法表循环示例scripttype=text/javascript!--vara=b=c=d=e=0;//声明5个循环变量while(a=620){document.write(█);a+=20;//改变循环变量的值}document.write(WarrenBuffett:620亿美元br);while(b=600){document.write(█);b+=20;}document.write(CarlosSlimHelu:600亿美元br);while(c=580){document.write(█);c+=20;}document.write(WilliamGates:580亿美元br);while(d=450){document.write(█);d+=20;}document.write(LakshmiMittal:450亿美元br);while(e=430){document.write(█);e+=20;}//--/scriptscripttype=text/javascript!--document.write(p请输入几个字母看看效果:/p);do{varcharacter;character=prompt(请输入一个字母,输入N或n结束:,B);//输入对话框document.write(spanstyle=font-size:36px;font-family:Webdings;+character+/span);}while(character!=n&&character!=N);//--/scriptscripttype=text/javascript!--varcol=1,row=1;//row代表行号,col代表列号for(row=1;row=9;row++){for(col=1;col=row;col++){document.write(row+*+col+=+row*col+ );}document.write(br);//每行结束换行}//--/scriptSVSE7.0-S2美国硅谷SVSE中国WEARECHANGING9break语句:跳出正在执行的循环结构◦求前10个数的和continue语句:忽略continue后面的语句,从下一次循环开始执行◦输出100以内的偶数循环控制break和continuescripttype=text/javascript!--varcounter=0;//设置循环变量,并给初值0varsum=0;//存放和变量,给初值0while(true){//主要这里是死循环sum+=counter;//循环要做的事情,累加if(counter==10){//使用if语句判断,如何加到10,使用break语句结束循环break;}counter++;//改变循环条件,有机会让循环结束}document.write(前10个数的和是:+sum);//输出累加的结果//--/scriptscripttype=javascript!--varoutput=;//存放输出结果的字符串vartemp=0;//设置循环变量并给初值0while(temp=100)){temp++;if(temp%2==1)//条件为true说明是奇数{continue;//如果是奇数,后面的代码跳过,从下次循环开始}output=output+temp+;//加上空格,输出时不会连接在一起}document.write(output);//--/script联合使用break和continue语句,求前10个偶数的和,怎样写呢?SVSE7.0-S2美国硅谷SVSE中国WEARECHANGING函数的含义:类似于Java中的方法,是执行特定任务的语句块。什么是函数如何希望点击某个按钮后才显示“今天心情好好啊!”,怎么办?SVSE7.0-S2美国硅谷SVSE中国WEARECHANGING11什么是函数1、在页面中加入一个表单和一个按钮。2、把要显示的代码放置到函数中,当点击按钮时,才调用该函数显示“今天心情好好啊!”代码:htmlheadtitle无参数无返回值函数/titlescripttype=text/javascript!--functionshow()//定义一个无参数、无返回值的函数{alert(今天心情好好啊!);}//--/script/headbodypinputtype=buttonvalue=说我onclick=show()/p/body/htmlSVSE7.0-S2美国硅谷SVSE中国WEARECHANGING12函数的定义:语法函数的调用:◦函数调用和表单元素的事件一起使用,调用格式为:事件名=“函数名”函数的定义和调用注意事项:函数名区分大小写,且不能相同,更不能使用JavaScript的关键字。在function关键字之前不能指定返回值的数据类型。函数定义中[]是指可选的,也就是说,自定义的函数可以带参数,也可以不带参数,如果有参数,参数可以是变量、常量或表达式。自定义函数可以有返回值,也可以没有,如果省略了return语句,则函数返回undefined。函数的参数列表中不象Java一样指定参数的数据类型,只写参数量名字。参数列表中如果有多个参数,则各参数之间需要以“,”隔开。函数必须放在script/script标签之间。函数的定义最好放在网页的head/head部分。定义函数时并不执行组成该函数的代码,只有调用函数时才执行代码。function函数名([参数列表]){程序语句……[return返回值;]}inputtype=buttonvalue=说我onclick=show()SVSE7.0-S2美国硅谷SVSE中国WEARECHANGING13计算任意给定的区间的数的和有参数和返回值的函数定义带参数的函数,用两个形参来分别表示左右区间在函数里循环累加区间里的数,把累加和返回在调用函数的代码里传如区间值,使用变量来接收返回值,显示和。代码:htmlheadtitle有参数有返回值函数/titlescriptlanguage=javascript!--functionsumbetween(num1,num2)//该函数返回num1到num2之间所有整数之和{vartotal=0,temp;for(temp=num1;temp=num2;temp++){total+=temp;}returntotal;//函数返回值}//--/script/headbodypscripttype=text/javascriptvarsum=0;sum=sumbetween(1,100);//调用sumbetween函数document.write(1至100之间所有整数的和为:+sum);/script/p/body/htmlSVSE7.0-S2美国硅谷SVSE中国WEARECHANGING有没有可能在函数的定义时,不给出参数列表,在函数的调用时给出实参?没有参数的函数可以,在函数内部使用arguments对象来访问函数被调用时程序传给该函数的所有实参。代码:htmlheadtitle有参数有返回值函数/titlescriptlanguage=javascript!--functionsumbetween()//该函数返回num1到num2之间所有整数之和{vartotal=0,temp;vartotal=0,temp;for(temp=arguments[0];temp=arguments[1];temp++){total=total+temp;}returntotal;//函数返回值}//--/script/headbodypscripttype