while循环案例(新手向)

161 阅读2分钟

1、等腰三角形

    /* 
    整体思路为:
    因为最多的一行有10个*,10个&ensp,总计占位20位。
    所以让第一行只出现一个*,且让他前面出现9个空格,而后面就相当于最后一行空出10个位置,差不多处在居中位。第二行到第十行同理。
     */
    var str="";
    var i=1,n=1,m=10;  /* i控制行,n控制该行应该出现几个*号,m控制该行应该出现几个空格 */
    while(i<=10){    
        m=10;
        while(m>i){         /* 当m递减至不再大于i时,不再输入空格 */
            str+="&ensp;";   
            m--;
        }
        n=1;
        while(n<=i){        /* n初始为1,让第n行只能出现n个*号  */
            str+="*&ensp;";
            n++;
        }
        i++;
        str+="</br>";
    }
    document.write(str);

2、99乘法表

      var row=9,col=9,i=0,j;
      document.write("<table>");
      while(i++<row){
        document.write("<tr>");
        j=0;
        while(j++<col){
            if(i<j) break;
            document.write("<td>"+i+"*"+j+"="+i*j+"</td>");
        }
        document.write("</tr>");
      }
      document.write("</table>");

3、菱形

  var str = "";
  var i = 1,
    n = 1,
    m = 10; /* i控制行,n控制该行应该出现几个*号,m控制该行应该出现几个空格 */
  while (i <= 20) {

      /* 1-10行 */

    if (i > 0 && i <= 10) {
      m = 10;
      while (m > i) {
        str += "&ensp;";
        m--;
      }
      n = 1;
      while (n <= i) {
        str += "*&ensp;";
        n++;
      }
    }

/* 10-20行 */

    if (i > 10) {
      n = 11;
      while (n <= i ) {
        str += "&ensp;";
        n++;
      }
      m = 20;
      while (m > i ) {
        str += "*&ensp;";
        m--;
      }
    }
    // console.log(i,n,m)
    i++;
    str += "</br>";
  }
  document.write(str);

4、3-100的质数

var i = 2,
    a = 3;
  while (a <= 100) {
    i = 2;
    var bool = true;
    while (i < a) {
      if (a % i === 0) {
        bool = false;
        break;
      }
      i++;
    }
    if (bool) console.log(a);
    a++;
  }

5、水仙花数(break)

一:
    var i=1,j=0,k=0;
    while(i<10){
        j=0;
        while(j<10){
            k=0;
            while(k<10){
                if(i*100+j*10+k*1 === i*i*i+j*j*j+k*k*k){
                    console.log(i*100+j*10+k*1);
                } 
                k++;
            }
            j++;
        }
        i++;
    }
二:
  var i = 1,
    j = 0,
    n = 0;
    abc: while (j < 10) {
      n = 0;
      while (n < 10) {
        if (i * i * i + j * j * j + n * n * n === i * 100 + j * 10 + n)
          break abc;
        n++;
      }
      j++;
    }
    console.log(i * 100 + j * 10 + n); 

6、将0-9 A-Z a-z作为字符串连接在一起(continue)

"azAZ09".charCodeAt(5); 显示字符串中第5位9的码值

String.fromCharCode(97);将97位转换为字符串

a = 97, z = 122, A = 65, Z = 90, 0 = 48, 9 = 57.

var i=47;
var str="";
while(i++<122){
    if(i>57 && i<65) continue;
    if(i>90 && i<97) continue;
    str+=String.fromCharCode(i);
}
console.log(str);