JavaScript while 循环
只要指定条件为 true,循环就可以一直执行代码块。
while 循环
while 循环会在指定条件为真时循环执行代码块。
语法
while (条件)
{
需要执行的代码
}
{
需要执行的代码
}
实例
本例中的循环将继续运行,只要变量 i 小于 5:
| 如果您忘记增加条件中所用变量的值,该循环永远不会结束。这可能导致浏览器崩溃。 |
do/while 循环
do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。
语法
do
{
需要执行的代码
}
while (条件);
{
需要执行的代码
}
while (条件);
实例
下面的例子使用 do/while 循环。该循环至少会执行一次,即使条件为 false 它也会执行一次,因为代码块会在条件被测试前执行:
别忘记增加条件中所用变量的值,否则循环永远不会结束!
比较 for 和 while
如果您已经阅读了前面那一章关于 for 循环的内容,您会发现 while 循环与 for 循环很像。
本例中的循环使用 for 循环来显示 cars 数组中的所有值:
实例
cars=["BMW","Volvo","Saab","Ford"];
var i=0;
for (;cars[i];)
{
document.write(cars[i] + "<br>");
i++;
}
尝试一下 »
本例中的循环使用 while 循环来显示 cars 数组中的所有值:
实例
cars=["BMW","Volvo","Saab","Ford"];
var i=0;
while (cars[i])
{
document.write(cars[i] + "<br>");
i++;
}
尝试一下 »
bangPort
784***818@qq.com
while 使用 length 属性循环数组
while 和 do/while 的区别 : do/while至少会执行一遍
var size=[1,2,3,4,5,6,7] ; //申明一个数组 var i=0; //while循环 while( i < size.length ) { document.write(size[i] + " "); i++; } document.write("<br>---------------<br>"); //do…..while循环 j=0 do{ document.write(size[j] + " "); j++; } while( j<size.length )尝试一下 »bangPort
784***818@qq.com
YuriOnRice
zzl***114@163.com
定义了数组后对数组进行赋值,中间如有某些下标未被使用(即未被赋值),在遍历的时候,采用一般的 for 循环和 for...in 循环得到的结果不同。
for...in 循环会自动跳过那些没被赋值的元素,而 for 循环则不会,它会显示出 undefined。
点击下面的按钮,循环遍历
<button onclick="myFunction()">点击这里</button> <p id="demo"></p> <script> function myFunction(){ var array = new Array(); var x; var txt="" array[0] = 1; array[3] = 2; array[4] = 3; array[10] = 4; for( x in array ){ alert(array[x]); // 依次显示出 1 2 3 4 } alert(array.length); // 结果是11 for( var i=0 ; i<4 ; i++){ alert(array[i]); // 依次显示出 1 undefined undefined 2 } document.getElementById("demo").innerHTML = txt; } </script>尝试一下 »
YuriOnRice
zzl***114@163.com
Chrisiven
342***472@qq.com
说一下 4 种循环的适用场景吧:
Chrisiven
342***472@qq.com
java_t_t
het***ncu@foxmail.com
while遍历数组的例子中,如果数组中有 0,null,false,undefined 或者空字符串等在 js 中被认为等价于 false 的值,会提前结束遍历。改成判断数组长度即可避免该问题:
原代码:
while (cars[i]) { document.write(cars[i] + "<br>"); i++; }更改为:
while (i < cars.length) { document.write(cars[i] + "<br>"); i++; }java_t_t
het***ncu@foxmail.com