我尝试制作一个数学计算器,例如: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
感谢。
答案 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++) { }