while循环的练习

181 阅读2分钟

★while循环的效率要高于for循环

1.十行十列的⭐

var j=0;
    var row=10;
    var col=10;
    while(j++<col){
       var i=0;
        while(i++<row)  document.write("⭐");
        document.write("<br/>"); 
    }

2.计算1~100的和

var i=0;
    var sum=0;
    while(i++<100){
        sum+=i;
    }
    console.log(sum);

3.无序列表嵌套

   var j=0;
    document.write("<ul>")
    while(j++<10){
        document.write("<li>第"+j+"章<ul>");
        var i=0;
        while(i++<10)   document.write("<li>第"+i+"节</li>");
        document.write("</ul></li>");
    }
    document.write("</ul>");

4.正直角三角形

 var i=0;
    var j=0;
    while(j++<6){
        while(i++<j) document.write("*");
        document.write("<br>");
        i=0;
    }

5.等腰三角形

var i=0;
    var j=0;
    while(j++<10){
        while(i++<10-j) document.write("&ensp;&ensp;");
        while(i++<j) document.write("❤");
            document.write("<br>");
            i=0;
    }

6.菱形

var j=0;
    while(j++<10){
        var i=0;        
        while(i++<10-j) document.write("&emsp;");
        while(i++<j) document.write("❤");
        document.write("<br>");
    }
    var k=10;
    while(k-->0){
        var b=0;        
        while(b++<10-k) document.write("&emsp;");
        while(b++<k) document.write("❤");
        document.write("<br>");
    }

7.九九乘法表

var j=0;
    while(j++<9){
        var i=0;
        while(i++<j){
            document.write(i+"*"+j+"="+i*j);
            document.write("&emsp;")
        }
        document.write("<br>");
    }

8.1000以内的水仙花数

var i=0; //百位
    var j=0; //十位
    var k=0; //各位
    var num=0;
    while(i<10){
        while(j<10){ 
            while(k<10){
                if(k*k*k+j*j*j+i*i*i === i*100+j*10+k){
                    document.write(num=i*100+j*10+k);
                    document.write("<br>");
                }
                k++;
            }
            j++;
            k=0;
        }
        i++;
        j=0;
    }

9.1-100之间所有的质数

var i=0;
    var j=2;
    var bool=true;
    while(i++<100){
        j=2;
        bool=true;
        while(j<i){
            if(i%j === 0){
                bool=false;
                break;
            }
            j++;
        }
        if(bool) document.write(i+"<br>");
    }

广度遍历,深度遍历

var obj = {
        value: 1,
        link: {
          value: 2,
          link: {
            value: 3,
            link: {
              value: 4,
              link: {
                value: 5,
                link: {
                  value: 6,
                  link: {
                    value: 7,
                    link: {},
                  },
                },
              },
            },
          },
        },
      };
      
     	while(obj.link){
        	console.log(obj.value);
        	obj=obj.link;
        }
var obj={
        value:1,
        a:{
            value:2,
            b:{
                value:3,
                c:{
                    value:4,
                    d:{
                        value:5,
                        e:{
                            value:6,
                            f:{
                                value:7,
                                g:{}
                            }
                        }
                    }
                }
            }
        }
    }
    
    var arr=["a","b","c","d","e","f","g"];
    var i=0;
    var s=arr[0];
    while(obj[s]){
        console.log(obj.value);
        obj=obj[s];
        i++;
        s=arr[i];
    }