循环时JavaScript平均值

JavaScript average while loop

本文关键字:平均值 JavaScript 循环      更新时间:2023-09-26

问题-开发一个类平均脚本,每次运行时都会处理任意数量的结果。提示用户输入每个结果,直到他/她键入-1为止。(哨兵)确定类平均值并将其写入页面。如果未输入任何结果(第一个输入为-1),则显示一条消息,表明这一点。

我的输出太差了,我看不出我做错了什么。

<script>
var result;
var index = 0;
var average = 0 ;
var sum = 0;
result = prompt("Please enter your grade, enter -1 to exit");
parseInt(result);
if(result == -1)
{
    alert("no input");
}
else
{
    while(result != -1)
    {
        sum = result + sum;         //adds on result to current sum
        index++;
        average = sum / index;      //index divided by sum to get average
        result = prompt("Please enter a number, enter -1 to exit");
        parseInt(result);

    }
    document.write("average = " + average);
}
</script>

您必须重新分配结果,而不仅仅是将其强制转换为int

result = parseInt(result)

或者您可以将操作快速转换为(肮脏的方式):

sum = +result + +sum;

变量前的+表示"将变量处理为整数"

试试这个。。

var result;
var index = 0;
var average = 0 ;
var sum = 0;
result = prompt("Please enter your grade, enter -1 to exit");
result =parseInt(result);//changed
if(result == -1)
{
alert("no input");
}
else
{
while(result != -1)
{
sum = result + sum;         //adds on result to current sum
index++;
average = sum / index;      //index divided by sum to get average
result = prompt("Please enter a number, enter -1 to exit");
result =parseInt(result);//changed
}
document.write("average = " + average);
}

您缺少result 的分配

Everywhere如果只使用整数或parseFloat();表示十进制数,则设置parseInt();,因为在进行任何操作之前都需要转换它们。

插入数据时忘记重新分配解析结果。

result = parseInt(result);

对每一轮整数值使用parseInt(),并将其赋值回结果变量。

result = parseInt(result);