在循环控制之后丢失) - 计算器

时间:2015-01-27 16:03:47

标签: javascript calculator

我尝试制作一个数学计算器,例如:x^2+2(2x+3)+3x 但是atm我总是missing ) after for-loop control 在下面的代码中,我尝试找到最接近的运算符(+-)到下一个(

也许我只是失败了两个for()合二为一,但从未在那里看到过问题。

for (var i = 0; i < indexAuf.length; i++;) {
  // Which operator is the closest to the "(" \\
  var maxPlus = 0;
  var maxMinus = 0;

  for (var j = 0; j < indexPlus; j++;) {
    if (indexPlus[j] < indexAuf[i]) {
      if (indexPlus[j] > maxPlus) {
        indexPlusMax = indexPlus[j]
        indexPlusMaxj = j
      }
    }
  }

  for (var l = 0; l < indexMinus; l++;) {
    if (indexPlus[l] < indexAuf[i]) {
      if (indexMinus[l] > maxMinus) {
        indexMinusMax = indexPlus[l]
        indexMinusMaxl = i
      }
    }
  }

  if (indexMinusMaxl > indexPlusMaxj) {
    alert("indexMinusMaxl" + indexMinusMaxl);
  } else {
    alert("indexPlusMaxj" + indexPlusMaxj);
  }

} else {
  return;
}

如果你有一些想法如何改进代码。我已经发布了完整的代码@Pasbin

http://pastebin.com/VdWeMqBx

感谢。

2 个答案:

答案 0 :(得分:0)

删除for (var i = 0; i < indexAuf.length; i++;){/*...*/}

中的最后一个分号

编译器中的for循环语法规则是这样的:

 for PARENTHESIS STATEMENT SEMICOLON EXPRESSION SEMICOLON STATEMENT PARENTHESIS BLOCK

最后的另一个分号会导致语法错误。

答案 1 :(得分:0)

错误消息表示缺少&#39;)&#39;在&#39 ;;&#39;之前:

for (var i = 0; i < indexAuf.length; i++;) { }

正确的是:

for (var i = 0; i < indexAuf.length; i++) { }