gpt4 book ai didi

javascript - 为什么我的 for 循环只运行一次 if 语句?

转载 作者:行者123 更新时间:2023-12-01 00:01:31 24 4
gpt4 key购买 nike

我正在用 JS 编写一个计算器,目前我正在编写“=”函数,现在我将代码粘贴到下面,所以我制作了 exp = 5 + 5,一切正常,它告诉我总数是 10,现在,当我执行 5+5+5 时,它仍然显示 10,就好像循环不起作用,因为我希望它先执行 5+5,将总数更新为 10,然后再次找到 + 运算符,然后添加加号后面的内容,我该怎么做?我不知道为什么循环不起作用

感谢所有帮助,

祝你有美好的一天,拉尔瓦

function equal(){

var exp = document.form.textview.value;
var expArray = exp.split(/\b/);
console.log(expArray);
let total = 0;
for (let i = 0 ; i < expArray.length; i++){
console.log(expArray[0])
total = parseFloat(expArray[0])
if(i = '+' || '-' || '/' || '*'){
console.log(i);
n = expArray.indexOf(i)
total += parseFloat(expArray[n + 1]);
}
}

最佳答案

您的代码中存在某些错误。

total应该在for循环之外初始化,否则会生成不正确的总值。

if(i = '+' || '-' || '/' || '*'){,在此代替使用赋值运算符 i应使用 :e =、比较运算符 i:e =====(严格相等运算符)。还需要单独的比较表达式 i:e i=== '+' ||我=== '-' ||我=== '/' ||我==='*'i 只是数组元素的索引,而不是 i 它应该是数组元素。 i:e expArray[i].

let exp = "5 + 5 + 5";

function equal() {
var expArray = exp.split(/\b/);
let total = parseFloat(expArray[0]);
for (let i = 0; i < expArray.length; i++) {
const dig = expArray[i].trim();
if (dig === '+' || dig === '-' || dig === '/' || dig === '*') {
total += parseFloat(expArray[i + 1]);
}
}
return total;
}

console.log(equal());

关于javascript - 为什么我的 for 循环只运行一次 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60692311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com