我被简单的问题所困扰,无限循环

时间:2019-02-15 11:37:47

标签: javascript

这是我的第一个问题贡献,因此,我希望,所有规则都可以。 这是一个简单的问题,我具有基本语言知识,我必须更改每个数组[2n] 的值 >当有人输入值时,它将乘以他们输入的值与数组中的值

so: tableau [1,2,3,4,5,..,100]必须成为:如果用户输入4 tableau [4,2,12,4,20 ..]

是:

tableau = new Array(100);
var userInput = prompt('give me a value');

for (i = 0; i < tableau.lengt; i++) {
  tableau[i] = i + 1;

  if (i = 0) {
    tableau[i] = i * userInput;
    console.log('voici mon tableau : [' + i + '] : ' + tableau[i]);
    var pair = i % 2;
    if (pair = 0) {

      tableau[i + 1] = tableau[i] * userInput;
      console.log('voici mon tableau : [' + i + '] : ' + tableau[i]);
    } else {
      console.log('voici mon tableau : [' + i + '] : ' + tableau[i]);
    }

  }
}

我在执行代码时遇到了问题,如果您能给我一些技巧,以获取完整的代码,我可以阅读帮助,但无法修复:(。

这是我的问题,使用此代码,我有一个无限循环,由于浏览器崩溃,我无法看到正在发生的情况。 我希望这不是一个愚蠢的问题,因为循环对于每个我找不到我的解决方案的人都是不同的。 预先谢谢你

3 个答案:

答案 0 :(得分:1)

您在这里使用赋值运算符'='进行比较。应该是

if (i == 0) 

相反。 否则,您要做的就是每次将i设置为0,因此循环永远不会结束,因为i仅具有值1(在循环结束时)和0。 相同

if (pair == 0) {
当然,

顺便说一句,克服这个问题的一个好习惯是写

0 == i 

相反。这样,如果您忘记了“ =”,就不会对我进行任何分配(您会收到一条错误消息)。

答案 1 :(得分:1)

您的代码存在其他麻烦。

我做了一些更正,请参见下面的实时示例

tableau = new Array(100);
var userInput = prompt('give me a value');

for (var i = 0; i < tableau.length; ++i) {
  var pair = i % 2;
  if (pair == 0) {
    tableau[i] = (i + 1) * userInput;
  } else {
    tableau[i] = i + 1;
  }
}

console.log(tableau)

答案 2 :(得分:0)

= 用于分配, == || === 用于比较。在您的if语句中,使用 == === = 将不起作用,因为它将始终返回真实,因此是无限循环。 这将是-

 if (i = 0) {
        //tableau[i] = i * userInput;
        //console.log('voici mon tableau : [' + i + '] : ' + tableau[i]);
        //var pair = i % 2;
        if (pair = 0) {

这个

 if (i == 0) {
        //tableau[i] = i * userInput;
        //console.log('voici mon tableau : [' + i + '] : ' + tableau[i]);
        //var pair = i % 2;
        if (pair == 0) {