Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript打印方块仅使用for循环和条件语句_Javascript_For Loop_Conditional - Fatal编程技术网

Javascript打印方块仅使用for循环和条件语句

Javascript打印方块仅使用for循环和条件语句,javascript,for-loop,conditional,Javascript,For Loop,Conditional,刚开始我的大学课程,在javascript方面有点困难。我被要求使用任何字符显示一个正方形,但是,解决方案必须结合for循环和if语句 这是我到目前为止所拥有的,我感觉非常接近,但我只是无法显示第二行。我知道这可以通过两个for循环来实现(一个用于变量的迭代,另一个用于空间)。但这不是我被要求解决这个问题的方式 这是我的密码: var size = 3; let i; for(i = 0; i < size; i++) { print ("*"); if (size === i){

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

这是我到目前为止所拥有的,我感觉非常接近,但我只是无法显示第二行。我知道这可以通过两个for循环来实现(一个用于变量的迭代,另一个用于空间)。但这不是我被要求解决这个问题的方式

这是我的密码:

var size = 3;
let i;


for(i = 0; i < size; i++) {
print ("*");
if (size === i){ 
println (""); 
}
}
var size=3;
让我;
对于(i=0;i

就上下文而言,这一切都发生在教授自制的学习环境中

for循环只迭代3次,打印第一行。如果你想要一个正方形,你必须打印9颗星,对吗?所以我假设,如果这是您要使用的方法,您需要迭代,直到
size
,但直到
size*size
,您可以使用嵌套的
进行循环,并在每个填充行之后换行

函数打印{document.getElementById('out').innerHTML+=s;}
函数println(s){document.getElementById('out').innerHTML+=s+'\n';}
变量大小=5,
i、 j;
对于(i=0;i

你想把*做成一个正方形,其中大小是*边上的*数

让我们将任务分为3部分:

  • 您可以像这样打印顶面*****
  • 打印中间(左侧和右侧)的位置,如**
  • 打印底部的位置(与顶部相同)
现在让我们来编写代码,我让代码尽可能简单,这可以用更少的行完成,但我认为这对初学者来说更容易理解:

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("*");

我正在使用console.log“打印”正方形:

    var dimension = 10;
    var edge = '*';
    var inside = ' ';
    var printLine;

    for (var i = 1; i <= dimension; i++) {
        if (i === 1 || i === dimension) {
            printline = Array(dimension + 1).join(edge);
        } else {
            printline = edge + Array(dimension - 1).join(inside) + edge;
        }
        console.log(printline);
    }

这让我有点困惑,而且,例如,输出需要看起来像一个填充的正方形,而不是一个空的。不过谢谢。对不起,现在已经有了完整的输出。我以前就是这样做的,但是,他现在想要一个条件语句。这是我的第一个建议,但他说我不是在玩游戏,哈哈。一些条件运算对我来说已经失去了意义,有没有机会解释模函数在做什么?多谢了,我真的很喜欢这个方法,我应该在输入任何东西之前多考虑一下这个问题。我甚至没有考虑过检查我的剩余部分来创建一个新行。我的想法更为线性。循环需要实际捕获用户输入的构成平方的*数。如果我在size*size上迭代,我会不会得到一个9*的字符串谢谢你的帮助!这是非常有用的,但是正方形不需要是空的,它需要是静态的X*X正方形,每个正方形中有一个字符。只是提醒一下,它必须至少包含一个if语句。告诉给你任务的人,将解决方案调整为包含码字是很糟糕的。这不符合编程的精神。但是,很好,您可以在最后添加if;)如果你想让它显示出来,你可以把真相告诉你的价值观:哈哈,我相信他会得到回报的!我休息了一会儿,然后又回到这里,至少第一行的显示是正确的。我曾考虑过在其中加入一个else,但我就是想不出如果没有一行又一行嵌套的ifs,我该如何有效地扩展它。使用Array.join()的想法很好。
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.");
    var dimension = 10;
    var edge = '*';
    var inside = ' ';
    var printLine;

    for (var i = 1; i <= dimension; i++) {
        if (i === 1 || i === dimension) {
            printline = Array(dimension + 1).join(edge);
        } else {
            printline = edge + Array(dimension - 1).join(inside) + edge;
        }
        console.log(printline);
    }
Array(11).join('a'); // create string with 10 as "aaaaaaaaaa"