Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 嵌套循环的问题_Javascript_Loops_For Loop_Infinite - Fatal编程技术网

Javascript 嵌套循环的问题

Javascript 嵌套循环的问题,javascript,loops,for-loop,infinite,Javascript,Loops,For Loop,Infinite,一般来说,我不熟悉javascript和编码 我试图在画布上以随机坐标绘制一系列圆,并试图根据一些其他值确定圆组的填充样式,为了简单起见,这里不包括这些值。谁能告诉我为什么我会得到一个无限循环 for (var counter = 1; counter <= 30; counter++) { var xCenter = 154; var yCenter = 270; var accuracyMod = (300 + 800) * 0.0013; var xMax = (x

一般来说,我不熟悉javascript和编码

我试图在画布上以随机坐标绘制一系列圆,并试图根据一些其他值确定圆组的填充样式,为了简单起见,这里不包括这些值。谁能告诉我为什么我会得到一个无限循环

for (var counter = 1; counter <= 30; counter++) {
  var xCenter = 154;
  var yCenter = 270;
  var accuracyMod = (300 + 800) * 0.0013;

  var xMax = (xCenter + (100 - 50) * accuracyMod);
  var xMin = (xCenter - (100 - 50) * accuracyMod);
  var yMax = ((yCenter + (100 - 50) * accuracyMod)) - (100 - 50);
  var yMin = ((yCenter - (100 - 50) * accuracyMod)) - (100 - 50);

  function randomIntFromInterval(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min);
  }

  console.log(randomIntFromInterval(xMin, xMax), (randomIntFromInterval(yMin, yMax)));

  var stroke = "color";
  var fill = "color";
  var intense = 85;
  for (var counter = 1; counter <= 7; counter++) {
    if (intense < 5) {
      stroke = "#fffdfc";
      fill = "#fffdfc";
    } else if (intense <= 20) {
      stroke = "#ffebd7";
      fill = "#ffebd7";
    } else if (intense <= 40) {
      stroke = "#ffae5f";
      fill = "#ffae5f";
    } else if (intense <= 60) {
      stroke = "#ff7402";
      fill = "#ff7402";
    } else if (intense <= 80) {
      stroke = "#e25610";
      fill = "#e25610";
    } else if (intense <= 95) {
      stroke = "#b84452";
      fill = "#b84452";
    } else {
      stroke = "#ac3f65";
      fill = "#ac3f65";
    }

  }
}

for(var counter=1;counter是的,因为您在外部循环和内部循环中都使用
counter
作为迭代变量。内部循环每次都会在
8
处离开
counter
。外部循环测试永远不会失败,因此它将继续


使用两个独立的计数器变量。此外,缩进代码以反映其结构。

是的,因为您在外部循环和内部循环中都使用
计数器
作为迭代变量。内部循环每次都将在
8处离开
计数器
。外部循环测试永远不会失败,因此将继续。


使用两个独立的计数器变量。此外,缩进代码以反映其结构。

FYI,这是使用
let
(在现代JS环境中)的理想场所,因此如果使用
let
,每个
计数器变量的作用域都将是单独的。FYI,这是使用
let
的理想场所(在现代JS环境中)因此,如果使用
let
,每个
计数器
变量的作用域都将是单独的。