我在哪里弄错了?

时间:2018-03-17 12:39:57

标签: javascript loops if-statement nested

大家好,我的代码有问题,我不知道怎么做,我需要编写在控制台中绘制的代码:

Draw '*' in every even number

为此,我需要使用嵌套循环。

到目前为止我只有这个:

var n = 5;
var stars = '';

for (var i = 1; i <= n; i++) {
  var starsline = '';
  for (var j = 1; j <= n; j++) {
    console.log(i + j);
  }

  if ( i % 2 === 0){
    starsline += '2';
  } else {
    starsline += '1'
  }

  stars += starsline;
}

console.log(stars);

这个数字2和1仅用于检查数字是偶数还是奇数。

3 个答案:

答案 0 :(得分:1)

只需几件事:

1)你在这里得到了一些奇怪的支架:

 /*}*/ if ( i % 2 === 0){

稍后会导致语法错误。

2)你实际上记录了正确的事情:

 console.log(i + j)

但你不使用它。把它放到你的条件中:

 if((i + j) % 2 === 0) 

你完成了:)

 let size = 5, stars = "";
 for (var row = 1; row <= size; row++) {
   var starsline = "";
   for (var col = 1; col <= size; col++){
     if ((row + col) % 2 === 0){
       starsline += '*';
     } else {
       starsline += ' ';
   }
   stars += starsline + "\n";
 }
 console.log(stars);

答案 1 :(得分:0)

试试这个:

var n = 5;
var stars = '';
for (var i = 1; i <= n; i++)
{
  var starsline = '';//<-- reset the value of line


   if ( i % 2 === 0)//<--this identifies which line will the stars be created
    {
        starsline += '* * *';//<--creating the stars on each line
    }
    else
    {
        starsline += ' * * ';//<--creating the stars on each line
    }
    stars += starsline+'\n';//<-- '\n' add line breaks for each lines
}
console.log(stars);//<-- print the stars

答案 2 :(得分:0)

我认为你试图做的是这样的:

var n = 5;
var stars = '';
for (var i = 1; i <= n; i++) {
    var starsline = '';
    for (var j = 1; j <= n; j++){
        if ( (i + j) % 2 === 0){
            // used three spaces for consistency in the drawing
            starsline += '   ';
        } else {
            starsline += ' * '
        }
    }
    stars += starsline + '\n';
}
console.log(stars);