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

时间:2018-10-15 17:15:27

标签: javascript html canvas paperjs

代码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>

1 个答案:

答案 0 :(得分:1)

这实际上是您的逻辑问题。
当x值为variables时,while循环将在第10次迭代后停止。
您必须在循环中进行检查之前递增x。
这是正确的代码:

1010