不同类型的循环
JavaScript 支持不同类型的循环:
- for - 循环代码块一定的次数
- for/in - 循环遍历对象的属性
- while - 当指定的条件为 true 时循环指定的代码块
- do/while - 同样当指定的条件为 true 时循环指定的代码块
while循环上篇已经讲过
for循环
for语句也是一个循环语句,也称为for循环
在for循环中,我们提供了专门的位置用来放三个表达式:
1 初始化表达式
2 条件表达式
3 更新表达式
for循环的语法:
for(1初始化表达式 2条件表达式 4更新表达式){
语句...
}
for循环执行的流程:
1 执行初始化表达式,初始化变量
2 执行条件表达式,判断是否执行循环
如果为true,则执行3
如果为false,则终止!
4 执行更新表达式,更新表达式执行完以后继续重复 2
for循环实例第一题:
<script> 第一题:打印1-100之间所有基数之和 创建一个变量,来保存基数之和var he = 0; for (var i = 1 , he = 0; i < 100; i++) { if(i%2 != 0 ){ he = he + i; } } console.log(he); var a=0; a = a+1; a = a+2; document.write(a); </script>
第二题;
<script> var gs = 0 ; // 打印一到一百之间七的倍数的个数及其总和 for (var i = 1 , zh = 0; i < 100; i++) { if (i%7 == 0) { console.log(i); zh = zh +i; gs++; } } console.log("个数"+gs) console.log("总和"+zh) </script>
第三题;
<script> //水仙花是指三位数,它的每位数字的三次幂之和等于它的本身. //例如 1^3+5^3+3^3=153 for (var i=100; i<1000; i++) { var bai = parseInt(i/100); var shi = parseInt((i-bai*100)/10); var ge = i%10; // console.log(shi); // console.log(bai); // console.log(ge); if(bai*bai*bai + shi*shi*shi + ge*ge*ge == i){ console.log(i); } } </script>
第四题
<script> // 判断输入数字是否为质数: // 质数规则质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。 var zs = prompt("输入小明的成绩"); var sz = 1; if(zs <= 1){ alert("非法数字") }else{ for(var i=2; i<zs; i++){ if(zs%i == 0){ sz = 2; } } } if (sz == 1) { alert(zs+"是质数"); }else{ alert(zs+"不是质数"); } </script>
第五题;
<script> // 嵌套的for循环在页面中输出如下图形 // * // ** // *** // **** // ***** for(var i=0; i<9; i++){ for(var z=0; z<i+1; z++){ document.write("*"); } document.write("<br>"); } for(var i=0; i<9; i++){ for(var z=0; z<9-i; z++){ document.write("*"); } document.write("<br>"); } </script>
第六题;
<script> // 问题:想办法在控制台里面输出一个乘法表 for (var i=0; i<=9; i++){ for (var z=1; z<=i; z++) { document.write(z+"×"+i+"="); document.write(z*i+" "); } document.write("</br>"); } </script>
.For...In 声明用于对数组或者对象的属性进行循环/迭代操作。
for-in语句是一种精准迭代语句,可以用来枚举对象的属性,用以遍历一个对象的全部属性。
for…in声明用于对数组或者对象的属性进行循环操作;
for…in循环中的代码每执行一次,就会对数组的元素或对象的属性进行一次操作。
for-in的语法:
for (变量 in 对象) { 执行代码 }
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <p>点击下面的按钮,循环遍历对象 "person" 的属性。</p> <button onclick="myFunction()">点击这里</button> <p id="demo"></p> <script> function myFunction(){ var x; var txt=""; var person={fname:"Bill",lname:"Gates",age:56}; for (x in person){ txt=txt + person[x]+"</br>"; } document.getElementById("demo").innerHTML=txt; } </script> </body> </html>
输出效果:
如果要迭代的对象的变量值为 null 或 undefined,for-in语句会抛出错误。ECMAScript5更正了这一行为;对这种情况不再抛出错误,而是不再执行·循环体。为了保证最大限度的兼容性,最好在使用for-in循环之前,先确认该对象的值不是null或undefined。迭代语句又叫循环语句,声明一组要反复执行的命令,知道满足某些条件为止。循环语句通常用于迭代数组的值(因此而得名),或者执行重复算数任务。