js基本语法——三大流程控制
-
顺序控制
- 分支控制
让程序有选择的执行,分支控制有三种
1.
单分支
2.
双分支
3.
多分支
单分支 if 语句if(条件表达式){语句;}双分支 if else 语句if(条件表达式){语句;}else{语句;}多分支 if else if else ..... 语句
if(条件表达式1){
//执行
}else if(条件表达式2){
//执行
}else if…{ //可以有多个else if
}
else{ //可以没有
}
多分支 switch 语句
switch(条件表达式){
case 常量1:
语句; break;
case 常量2:
语句; break;
…
case 常量n:
语句; break;
default:
语句; break;
}
注意:case有几个都行,default可以没有。当case1~n都不满足的时候,则default。default并不一定要在最后。
- 循环控制
for循环
for(循环初值;循环条件;步长){
语句; //循环体
}
while循环
while(循环条件){
语句; //循环体
}
do while循环
do{
}while(循环条件);
特别说明:while循环是先判断再执行语句,do while循环是先执行,再判断。
好好看一下下面的代码:
<html>
<head>
<script language="javascript">
var a=890;
switch(a){
case 890:
window.alert("这是890");
break; //break 作用是跳出整个switch语句
case 90:
window.alert("这是90");
break;
case 890:
window.alert("没有匹配的值");
break;
}
//当break语句没有的时候,会接着向下执行,直到碰到第二个break
var a=890;
switch(a){
case 890:
window.alert("这又是890");
//这里没有break语句,执行下一句 case
case 90:
window.alert("这是90");
break;
case 890:
window.alert("没有匹配的值");
break;
}
// 下面这个会出现什么提示?
//会弹出三个对话框,因为1没有任何匹配就进入了default,执行window.alert("默认");
//又因为没有break,就接着执行window.alert("今天是星期一");
//又因为没有break,就再执行window.alert("今天是星期二");
var flag=1;
switch(flag){
default:
window.alert("默认");
case 'a':
window.alert("今天是星期一");
case 'b':
window.alert("今天是星期二");
}
//下面的这个又会提示什么呢?
//1.1有匹配了,只显示1.1,然后语句结束。
var flag=1.1;
switch(flag){
default:
window.alert("默认1.1");
case 'a':
window.alert("今天是星期一1.1");
case 'b':
window.alert("今天是星期二1.1");
case 1.1:
window.alert("1.1");
}
//对上面的程序再深一步,下面的这个又会提示什么呢?
//1.2有匹配了,先显示1.2,没有遇到break,就继续执行window.alert("今天是星期二1.2");
//还是没有遇到break,再执行window.alert("默认1.2");
//程序结束。
var flag=1.2;
switch(flag){
case 'a':
window.alert("今天是星期一1.2");
case 1.2:
window.alert("1.2");
case 'b':
window.alert("今天是星期二1.2");
default:
window.alert("默认1.2");
}
</script>
</head>
<body></body>
</html>
注意:
- js的switch语句类型可以是js支持的任何类型(数组和对象除外)
- case后面的数据类型可以任意(数组和对象除外)
- break作用是跳出整个switch语句
- 如果没有匹配的则执行default后面的语句
案例:
- 计算1+2+......+n的值
<html>
<head>
<script language="javascript">
var n=window.prompt("请输入一个整数");
n=parseInt(n);
var res=0;
for(var i=0;i<=n;i++){
res+=i;
}
document.writeln("结果是"+res);
</script>
</head>
<body></body>
</html>
2. 计算1!+2!+........+n!的值
<html>
<head>
<script language="javascript">
var n=window.prompt("请输入一个整数");
n=parseInt(n);
var res=0;
var temp=1;
for(var i=1;i<=n;i++){
for(var j=1;j<=i;j++){
temp*=j;
}
res+=temp;
tmep=1;
}
document.writeln("结果是"+res);
</script>
</head>
<body></body>
</html>