在进入循环之前先看看分支语句——
## switch语句
switch工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
语法:
switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
与 case 1 和 case 2 不同时执行的代码
}
default 关键词
使用 default 关键词来规定匹配不存在时做的事情。
例子如下:
<script>
var a=Number(prompt("今天是周几呢?请输入一位数字快速查询"));
switch(a){
case 1:alert("星期一");break;
case 2:alert("星期二");break;
case 3:alert("星期三");break;
case 4:alert("星期四");break;
case 5:alert("星期五");break;
case 6:alert("星期六");break;
case 0:alert("星期日");break;
default:alert("星期一");break;
}
</script>
当你输入0,1,2,3,4,5,6...会有对应语句被执行。
比较switch和多重if结构:
相同点:都可以实现多分支结构
不同点:
switch:只能处理等值的条件判断,且条件是整型变量或字符变量的等值判断
多重if:处理在else部分还包含其它if结构,特别适合某个变量处于某个区间时的情况**
开始进入循环:
不同类型的循环
JavaScript 支持不同类型的循环:
- while - 当指定的条件为 true 时循环指定的代码块
- do/while - 同样当指定的条件为 true 时循环指定的代码块
- for - 循环代码块一定的次数
- for/in - 循环遍历对象的属性
while循环
while 循环会在指定条件为真时循环执行代码块。
while (条件)
{
需要执行的代码
}
例子:
while (i<5)
{
x=x + "The number is " + i + "<br>";
i++;
}
注:如果您忘记增加条件中所用变量的值,该循环永远不会结束。这可能导致浏览器崩溃。
do /while
do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。该循环至少会执行一次,即使条件为 false 它也会执行一次,因为代码块会在条件被测试前执行
语法如下:
do
{
需要执行的代码
}
while (条件);
do
{
x=x + "The number is " + i + "<br>";
i++;
}
while (i<5);
注:别忘记增加条件中所用变量的值,否则循环永远不会结束!
for循环
for 循环是您在希望创建循环时常会用到的工具。
下面是 for 循环的语法:
for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
语句 1 (代码块)开始前执行,通常我们会使用语句 1 初始化循环中所用的变量 (var i=0)。语句 1 是可选的,也就是说不使用语句 1 也可以。
语句 2 定义运行循环(代码块)的条件,通常语句 2 用于评估初始变量的条件。该语句同样是可选的。如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。如果省略了语句 2,那么必须在循环内提供 break。否则循环就无法停下来。这样有可能令浏览器崩溃。请在本教程稍后的章节阅读有关 break 的内容。
语句 3 在循环(代码块)已被执行之后执行通常语句 3 会增加初始变量的值。语句 3 也是可选的。语句 3 有多种用法,增量可以是负数 (i--),或者更大 (i=i+15)。语句 3 也可以省略(比如当循环内部有相应的代码时)
例子:
for(let i=0 ;i<10;i++){
document.write("我能行<br>")
输出结果如下:
For/In 循环
JavaScript for/in 语句循环遍历对象的属性:
var person={fname:"Bill",lname:"Gates",age:56};
for (x in person) // x 为属性名
{
txt=txt + person[x];
}
结果为:BillGates56;
更多for/in循环会在后面推出。
break 语句“跳出”循环。
continue 语句“跳过”循环中的一个迭代。
**区别:continue 语句(不论有无标签引用)只能用于跳过一个迭代。
break 语句,如果没有标签引用,只能用于跳出一个循环或一个 switch。
如果有标签引用,则 break 语句可用于跳出任意代码块**
1. break :
(1).结束当前整个循环,执行当前循环下边的语句。忽略循环体中任何其它语句和循环条件测试。
(2).只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出。[逐层判断,逐步跳出]
(3).break在循环体内,强行结束循环的执行,也就是结束整个循环过程,不在判断执行循环的条件是否成立,直接转向循环语句下面的语句。
(4).当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
总的来说:就近原则,结束当前的整个循环。
continue:
(1).终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。
(2).结束当前循环,进行下一次的循环判断。
(3).终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.
补充: return:
(1).return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
(2).return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
(3). return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。