为什么代码 2 没有在我的浏览器上生成 10 行圆圈?但是代码 1 产生了 10x10 行 x 列的半径为 10 的圆的输出

Why is code 2 not producing 10 rows of circles on my browser? But the code 1 is producing the output of 10x10 rowsxcolumns of circles with radius 10

代码 1 有效,给出了 10 条半径为 10 的圆。

代码 2 没有按预期工作,它只给出了一行半径为 10 的圆。

我认为逻辑是正确的,但在纸质 js 文档方面,我仍然很可能遗漏了一些东西。

canvas {
  width: 100%;
  background-color: black;
}

body,
html {
  height: 100%;
  margin: 0;
}
<!DOCTYPE html>
<html>
<head>
 <title>Patapat Sound Project</title>
 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.9.18/paper-full.min.js"></script>
 <script type="text/paperscript" canvas="canvas">
  //Code 1
  for(var x = 0; x<1000; x += 100){
   for(var y = 0; y<1000; y += 100){
    var circle = new Path.Circle(new Point(x, y), 10);
    circle.fillColor = 'red';
   }
  }

  //Code 2
  var x = 10;
  var y = 10;
  while(x!=1010 && y!= 1010){
   var circle = new Path.Circle(new Point(x,y), 10);
   circle.fillColor = 'orange';
   if(x==1010){
    x=10;
    y+=100;
   }
   else{
    x+=100;
   }
  }
 </script>
</head>
<body>
  <canvas id="canvas" resize></canvas>
</body>
</html>

这其实是你的逻辑有问题
当 x 值为 1010.
时,while 循环在第 10 次迭代后停止 在循环中进行检查之前,您必须增加 x。
这是正确的代码:

//Code 2
var x = 10;
var y = 10;
while (x != 1010 && y != 1010) {
    console.log(x, y);
    var circle = new Path.Circle(new Point(x, y), 10);
    circle.fillColor = 'orange';

    // increment x every time
    x += 100;

    // then check if it will break the loop
    if (x == 1010) {
        x = 10;
        y += 100;
    }
}