while循环的新手向案例

案例

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乘法表

    <style>
        table {
        border-collapse: collapse;
        width: 800px;
        }
        td,th {
        height: 30px;
        line-height: 30px;
        font-size: 18px;
        text-align: center;
        border: 1px solid #000000;
        }
    </style>
    
      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);
    ```
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值