首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只使用for循环和条件语句的Javascript打印平方

只使用for循环和条件语句的Javascript打印平方
EN

Stack Overflow用户
提问于 2017-10-13 10:28:32
回答 4查看 16.4K关注 0票数 1

刚开始我的大学课程,有点挣扎于javascript。我被要求使用任何字符显示一个正方形,但是,解决方案必须结合用于循环和if语句。

到目前为止,这就是我所拥有的,我感觉非常接近,但我只是无法展示第二条线。我知道这可以通过两个for循环来完成(一个用于变量的迭代,另一个用于空格)。但这并不是要求我解决这个问题的方法。

这是我的代码:

代码语言:javascript
复制
var size = 3;
let i;


for(i = 0; i < size; i++) {
print ("*");
if (size === i){ 
println (""); 
}
}

就语境而言,这一切都发生在教授们自制的学习环境中。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-10-13 10:39:50

您可以使用嵌套的for循环,并在每一行填充后中断行。

代码语言:javascript
复制
function print(s) { document.getElementById('out').innerHTML += s; }
function println(s) { document.getElementById('out').innerHTML += s + '\n'; }

var size = 5,
    i, j;

for (i = 0; i < size; i++) {
    for (j = 0; j < size; j++) {
        print("*");
    }
    println("");
}
代码语言:javascript
复制
<pre id="out"></pre>

如果i等于零,如果余数为零,则添加一个换行符。

使用:

  • 身份/严格平等运算符检查类型和值,例如,如果两者都是数字,且值是否相同,
  • 非恒等/严格不等式操作符--它和上面一样,但是它检查它的oposite,
  • 余数操作符,它返回除法返回整数的数的其余部分。
  • 逻辑与操作符,它检查两边并返回最后一个值,如果是特鲁西 (像任何数组、对象、数字不为零、不为空的字符串、true),或者是第一个值,如果是虚妄 (如undefinednull0'' (空字符串)、false,是真实的选项)。

代码语言:javascript
复制
function print(s) { document.getElementById('out').innerHTML += s; }
function println(s) { document.getElementById('out').innerHTML += s + '\n'; }

var size = 5,
    i;

for (i = 0; i < size * size; i++) {
    if (i !== 0 && i % size === 0) {
        println("");
    }
    print("*");
}
代码语言:javascript
复制
<pre id="out"></pre>

票数 2
EN

Stack Overflow用户

发布于 2017-10-13 10:33:21

好的,for循环只迭代3次,打印第一行。如果你想要一个正方形,你得打印9颗星的总数,对吗?因此,我假设,这就是您要采用的方法,您需要迭代的不是size,而是size * size

票数 0
EN

Stack Overflow用户

发布于 2017-10-13 10:43:51

你想要做一个正方形,它的两边的大小是*的数目吗?

让我们将一个任务分成三个部分:

  • 你打印最上面的一面像*
  • 你打印中间(左和右)像**
  • 打印底部(与顶部相同)的地方

现在让我们来编写这样的代码,我尽可能地保持代码的简单,这可以用更少的行来完成,但是我认为对于初学者来说,这将更容易理解:

代码语言:javascript
复制
var size = 5;
var i = 0;

// top
for (i = 0; i < size; i++)
    console.log("*");

//middle
for (var j = 0; j < size - 2; j++){
  console.log("\n"); // go to next row
  // middle (2 on sides with size-2 in between)
  console.log("*");
  for (i = 0; i < size-2; i++)
    console.log(" ");
  console.log("*\n"); // goes to new row as well
}

// same as top
for (i = 0; i < size; i++)
    console.log("*");

全正方形甚至更简单:

代码语言:javascript
复制
var size = 5;
var i = 0;

for (var i = 0; i < size; i++){ // iterates rows
  for (var j = 0; j < size; j++) // iterates * in row
      console.log("*");
  console.log("\n") // moves to new row
}

为了打印一行,您可以打印相同的符号X次。好的,为了打印X行,我们只需要再用1次(只是这次我们在一个不同的变量上迭代(j是*在一行中,我是许多行)。

生成一行后,我们将使用\n转到下一行。

至于

它必须包含if语句。

把这个放在最后:

代码语言:javascript
复制
if (youCanHandleTheTruth) console.log("It's a terrible practice to tell students their solution MUST CONTAIN CODEWORDS. If you need them to showcase something, write appropriate task that will require them to do so.");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46727814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档