【问题标题】:Where i make mistake here?我在这里哪里出错了?
【发布时间】:2018-03-17 12:39:56
【问题描述】:

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

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只是为了检查数字是偶数还是奇数。

【问题讨论】:

  • 调试成功的第一步是代码格式化。在您的代码中,不清楚哪个循环在另一个循环中。用空格缩进那些内部循环。

标签: javascript loops if-statement nested


【解决方案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);

【讨论】:

  • @mariusz 很高兴为您提供帮助 :)
【解决方案2】:

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

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);

【讨论】:

  • 效果很好,非常感谢,无论如何我在我的代码中发现了错误,我在 if 之前关闭了第二个循环,这就是为什么我不能得到正确的结果 +“i + j”应该是在“()”中,非常感谢你:)
【解决方案3】:

试试这个:

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

【讨论】:

  • 差不多了 :-)
  • try this 不是答案。
  • @JonasW。保持积极的伴侣。上帝保佑。 :)
  • 你的回答不好与我对生命和上帝的态度无关。如果您愿意edit 并修复您的答案,我将很高兴删除我的反对票(甚至将其更改为赞成票)并提供解释。
  • @JonasW。谢谢你。 :) 很抱歉我的误解。
猜你喜欢
  • 1970-01-01
  • 2013-12-25
  • 2016-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
  • 2011-07-21
相关资源
最近更新 更多