【问题标题】:For loop generating numbers with asterisks [closed]For循环生成带星号的数字[关闭]
【发布时间】:2016-12-08 09:49:12
【问题描述】:

我需要做一个简单的for 循环,让它最终看起来像这样:

1****** 12***** 123**** 1234*** 12345** 123456* 1234567

到目前为止,我写道:

for (i = 1; i <= 7; ++i) {
    document.write(i);
    for (j = 1; j < 7; j++) {
        if (j <= 7) {
            document.write("*");
        } else {
            document.write("&nbsp");
        }
    }
}

【问题讨论】:

  • 正确布局您的代码。你会发现它更容易阅读。你到底在坚持什么?
  • 我投票结束这个问题,因为它是一个家庭作业帖子。
  • @Mr_Green 有 nothing wrong with asking homework questions 所以这不是一个有效的关闭原因。
  • @Liam 谢谢理解。 :)
  • 您的意思是&amp;nbsp;&amp;nbsp 不会产生空格。

标签: javascript for-loop


【解决方案1】:

您需要另一个变量来保存循环中迭代的数字。

for (i = 1, k = ""; i <= 7; ++i) {
  k += i;  // concatenating i variable values in k variable
  document.write(k);
  for (j = i; j < 7; j++) {
    document.write("*");
  }
  document.write("&nbsp");
}

【讨论】:

    【解决方案2】:

    你快到了:

    for (i = 1; i <= 7; ++i) {
        for (j = 1; j <= 7; j++) {
            if (j <= i)
                document.write(j);
            else
                document.write("*");
        }
        document.write("&nbsp;");
    }
    

    您的带有 cmets 的代码:

    for (i = 1; i <= 7; ++i) { // This for should loop over your blocks
        document.write(i); // Doing this will make the first number change for every block.
        for (j = 1; j < 7; j++) {  // This for should loop over your numbers
            if (j <= 7) { // This if is only there for the space? Put it in the other loop!
                document.write("*"); 
            } else {
                document.write("&nbsp");
            }
            // Here you should check if you want a * or a number. Not the check to see if you want a space or not.
        }
        // Space should be here.
    }
    

    【讨论】:

      【解决方案3】:

      你已经不远了,应该做几个改变:

      for (i = 1; i <= 7; i++) {
        for (j = 1; j <= 7; j++) {
          if (j <= i)
            document.write(j);
          else
            document.write("*");
        }
        document.write("&nbsp");
      }

      【讨论】:

      • 导致1****** 2***** 3**** 4*** 5** 6* 7 - 你也离我们不远了
      • @JaromandaX: 是的...我今天可以重新开始吗?
      • 优胜者鸡肉晚餐 :p can I start today again please? 这是什么意思?
      【解决方案4】:

      试试这个: 首先你有从 1 到 7 的主循环, 然后你有第二个循环来写你的字符串, 所以从 1 开始,直到我写数字,然后添加 ** 这是jsfiddle

       for (i=1;i<=7;i++)
      {
           for(j=1; j<=i; j++)
          document.write(j);
          {
             while(j<=7)
             {
                 document.write("*");
                 j++;
             }
                 document.write("&nbsp");
          }
      }
      

      【讨论】:

      • 导致1* 12* 123* 1234* 12345* 123456* 1234567 所以,不要尝试
      • @Liam - 它运行得很好 - 结果错误
      • @Liam 这不是无效的 JavaScript。
      • @Liam 不,不是。
      • 现在还添加了一个jsfiddle
      猜你喜欢
      • 2016-07-17
      • 1970-01-01
      • 2020-04-06
      • 2020-12-06
      • 2019-01-29
      • 2014-02-12
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      相关资源
      最近更新 更多