为什么这个循环中途终止?

时间:2017-06-20 21:36:53

标签: javascript algorithm jsbin

我试图编写一个程序来查找所提供参数的最小公倍数,这些参数可以被两者均分,以及这些参数之间的所有序列号。

范围将是两个数字的数组,不一定按数字顺序排列。

例如,对于1和3 - 找到1和3的最小公倍数,它们可以被1到3之间的所有数字整除。

为什么循环停在i = 510,000(或接近那个)而不是7,000,000,正如我设定的那样?

我还有一个输出屏幕截图:



function smallestCommons(arr) {
  
  var start;
  var finish;
  var something;
  
  if(arr[0] < arr[1]){start = arr[0]; finish = arr[1];}else{
      start = arr[1]; finish = arr[0];
    }
  
  for(var i = finish;i <= 7000000;i++){
    var boolea = true;
    for(var j = start;j <= finish;j++){
      if(i % j !== 0){boolea = false;break;} // 2 % 1
    }
    
    if(boolea)return i;
    
    something = i;
  }
  
  console.log("final i = " + i);
  
  return 0;
}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

尝试在循环开头添加此内容

// noprotect

必须是jsbin强制你的代码退出循环。见source