Javascript提示和警告输入一个数字,它将循环,您将输入数字以获得其平均值
我有下面带有循环的javascript代码,但我不能得到它的平均值。我不确定我的代码出了什么问题。就像第一个提示,你输入一个数字,它会循环,你输入数字,比如你输入了多少,你会得到所有数字的总和,然后在完成后得到平均值。这是我的密码 函数show_prompt() {Javascript提示和警告输入一个数字,它将循环,您将输入数字以获得其平均值,javascript,html,loops,Javascript,Html,Loops,我有下面带有循环的javascript代码,但我不能得到它的平均值。我不确定我的代码出了什么问题。就像第一个提示,你输入一个数字,它会循环,你输入数字,比如你输入了多少,你会得到所有数字的总和,然后在完成后得到平均值。这是我的密码 函数show_prompt() { var n=prompt(“输入一个数字:”,“此处为数字”); 如果(n==n) { var i=1; 做 { var g=提示(“输入等级:”); var等级=parseInt(g); var合计=等级+等级; i++; } 而
var n=prompt(“输入一个数字:”,“此处为数字”);
如果(n==n)
{
var i=1;
做
{
var g=提示(“输入等级:”);
var等级=parseInt(g);
var合计=等级+等级;
i++;
}
而(i你在每个区间用两倍的等级值覆盖你的“总”变量
var grade=parseInt(g);
var total=grade+grade;
应改为
var grade=parseInt(g);
total=total+grade;
此外,您需要在代码开头初始化“total”变量。
请参阅演示代码:
我还建议进行一些输入验证(例如检查要求平均的分数是否大于0,所有分数是否为正等)。我认为您希望实现以下目标:
只需将console.log替换为您自己的document.write
现在,尽管我非常讨厌使用提示,而且我也不太习惯它们,但以下是我认为您在脚本中缺少的内容:
控件:“n”和“g”变量必须是整数,因此强制用户插入整数
变量声明:每次循环时都声明total
,因此根本不存储任何内容
要解决这些问题,代码的第一部分是:
var n = prompt("Input a number: ", "Number here");
while (!parseInt(n) )
{
n=prompt("Input a number: ", "Number here");
}
通过这种方式,您要求用户给您一个数字,但是脚本在能够有效地解析整数值之前不会进行处理
因此,诸如“hey”、“hello”、“foo”、“bar”、“baz”之类的输入将不被接受
然后,代码的第二部分变为:
var i=1;
var total = 0;
do
{
var g = prompt("Input grade: " );
while (!parseInt(g)) {
g = prompt("Input grade: " );
}
var grade = parseInt(g);
total += grade;
i++;
}
while(i<=n);
var average=(total)/n;
console.log("Average is: " +average);
var i=1;
var合计=0;
做
{
var g=提示(“输入等级:”);
而(!parseInt(g)){
g=提示(“输入等级:”);
}
var等级=parseInt(g);
总数+=年级;
i++;
}
而(i请尝试下面的代码以获得输入数字的平均值
numGrades = prompt("Enter number of grades to be entered: ");
//number of grades to be entered LOOP
for (index = 1; index <= numGrades; index++) {
numberGrades = prompt("Enter Grade " + index);
}
//Calculation
gradePointAverage = numberGrades / numGrades;
document.write("Your GPA is " + gradePointAverage );
numGrades=prompt(“输入要输入的分数:”);
//要在循环中输入的等级数
对于(index=1;index我不知道你想做什么,但有一件事我可以告诉你,你的第一个if语句是毫无意义的。你问变量n
is==to variablen
…显然n
将与n
相同,因为n
是n
…n==n将始终为真,而w为什么要添加grade+grade?每次在循环中都要声明total。另外,什么样的控件是n==n?n将始终被定义,因为它是一个输入。您应该检查它是否是一个数字,而不是它本身。
numGrades = prompt("Enter number of grades to be entered: ");
//number of grades to be entered LOOP
for (index = 1; index <= numGrades; index++) {
numberGrades = prompt("Enter Grade " + index);
}
//Calculation
gradePointAverage = numberGrades / numGrades;
document.write("Your GPA is " + gradePointAverage );