1、switch结构
switch (表达式) { case 常量 1: 语句; break; case 常量 2: 语句; break; default: 语句; }
例子:请根据用户输入的数字判断菜单 <script> var a = prompt("今天是周几,看看中午吃啥子", "周一"); switch (a) { case "周一": alert('清蒸罗非鱼'); break; case "周二": alert('红烧罗非鱼'); break; case "周三": alert('油炸罗非鱼'); break; case "周四": alert('糖醋罗非鱼'); break; case "周五": alert('烧烤罗非鱼'); break; case "周六": alert('生吃罗非鱼'); break; case "周天": alert('罗非鱼全家桶'); default: alert("不想吃罗非鱼?") } </script>
注意:如果需要每个case执行完后跳出,在每个case后不要忘记写break;
switch和多重if结构区别
相同点:都可以实现多分支结构
不同点:switch只能处理等值的条件判断,且条件是整型变量或字符变量的等值判断
多重if处理在else部分还包含其它if结构,特别适合某个变量处于某个区间时的判断情况
2、 while循环
while ( 循环条件 ) {
循环操作
}
举例:盈盈为了考验令狐冲夺冠的决心,要他说一百遍“我能行!” var i = 1; while (i <= 100) { document.write(`第${i}遍我能行;`); i++; }
3、 do-while循环
do {
循环操作
}while ( 循环条件 );
举例求出1~10相加的总和,并将式子列出 // do-while循环求和方法(让每次的和存放在变量a中,与下一次自增后的变量i相加,直至不满足条件后输出最终和a。) var i = 1, a = 0;//变量初始化 do {//先循环一次再判断 if (i == 1) {//判断内置双分支结构条件是否满足 document.write(i)//输出运算过程 } else { document.write("+" + i)//输出运算过程 } a = a + i;//累积每次相加的和 i++;//变量的每次自增 } while (i <= 10);//判断条件是否满足 document.write("=" + a);//输出最终和
例子:请根据用户输入的五名同学的成绩,求平均数 var a = 1, sum = 0; do { i = +prompt("请分别输入第" + a + "个人的成绩") sum = sum + i; a++; } while (a <= 5) sum = sum / 5; document.write("这五名同学的平均成绩是" + sum);
for循环
for (初始化变量;循环条件;变量更新){
循环操作
}
特点:先判断再执行
执行顺序:
初始化变量-->循环条件(true)-->循环操作-->更新变量-->循环条件-->循环操作-->更新变量......直至条件不成立结束循环。
for (var a = 1, b = 0; a <= 100; a++) { if (a % 3 != 0) { b = b + a; } } document.write("1~100之间不能被3整除的和=" + b);
循环嵌套
// 循环嵌套双重 document.write('<table border="1">'); for (var i = 1; i <= 4; i++) { document.write('<tr>'); for (var d = 1; d <= 5; d++) { document.write('<td>单元格' + d + '</td>') } document.write('</tr>'); } document.write('</table>');
效果:
跳转语句
break 跳出整个循环
continue 跳出本轮循环 本轮循环终止 进入下一次循环
//1~10之间的整数相加,得到累加值大于20的当前数 用break来实现 for (i = 1, a = 0; i <= 10; i++) { a = a + i if (a > 20) { document.write(i) break; } }