for循环

不同类型的循环

 

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+"&times"+i+"=");
                document.write(z*i+"&nbsp;&nbsp;");
            }
            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。迭代语句又叫循环语句,声明一组要反复执行的命令,知道满足某些条件为止。循环语句通常用于迭代数组的值(因此而得名),或者执行重复算数任务。

posted @ 2019-11-16 12:49  牛耀民  阅读(339)  评论(1编辑  收藏  举报