【问题标题】:For Loop with averaging带平均的 For 循环
【发布时间】:2017-02-18 01:50:45
【问题描述】:

我正在尝试使用 for 循环来显示提示,但如何从循环中获取平均值?当它循环一个带有 propmt 的 var 时,它会像 var student[0],var student[1] 等它们是如何定义的,所以我可以平均它们吗?

<html>

<head>
<title>
    for
</title>
</head>

<body>
<p>
    Average your marks:
    <button onclick="myFunction()">Start</button>
</p>

<script type="text/javascript">
    function myFunction() {
        var Avg = "";
        for (var i = 0; i < 5; i++) { // this part makes the prompt below repeat 5 times 
                                       // but how would i multiply them.
            var Student = prompt("Enter your mark.  ");

            Avg +=                     // no clue what to do here
        }
        window.alert(Avg);
    }
</script>

</body>

</html>

【问题讨论】:

  • 我打开页面时的输入,它重复 var Student = prompt("enter your scores")。它像我想要的那样重复 5 次,但是我如何将 5 个重复的提示相乘并除以 5 得到平均值? @uzaif
  • 将所有Student值相加,然后在循环后除以5

标签: javascript html for-loop


【解决方案1】:
function myFunction() {
    var sum = 0; // should be initialized to 0 not ""
    for (var i = 0; i < 5; i++) {
        var mark = prompt("Enter your mark: ");
        sum += Number(mark); // sum the marks (convert mark to number because prompt return a string)
    }
    var avg = sum / 5; // the average is the sum divided by the number of marks which is 5
    alert("Your average is: " + avg);
}

【讨论】:

  • 谢谢你,你很有帮助!
  • @OusmaneMahyDiaw 那将是另一个故事。我使用了Number,这样+ 就不会被视为串联!
  • @MichaelWong 这正是我所说的原因。如果它返回 nan 并尝试用 nan 添加一个数字.....无论如何,您似乎对答案很满意,所以一切都很好。我只是在考虑先验证。
  • 提示可以有默认值
【解决方案2】:

这还会提示用户他们输入分数的学生人数,如果用户没有输入任何内容,则认为学生标记为零:

<!DOCTYPE html>
<html>
<body>

<p>Click the button to enter the 5 student's marks</p>

<button onclick="myFunction()">Start</button>

<p id="Average"></p>

<script>
function myFunction() {
    var sum = 0;
    var students = 5;
    for (var i = 1; i <= students; i++) { 
      var mark = prompt("Please the mark for student " + i, 0);
      sum += Number(mark)
    }
    document.getElementById("Average").innerHTML =
        "The average mark was: " + (sum/students);
}
</script>
</body>
</html>

【讨论】:

    【解决方案3】:

    您可以做的是使用您在提示中输入的内容来增加 Avg 变量。然后将总数除以将显示的提示数量,得到平均值。

    var Avg = 0;
    for (var i = 0; i < 5; i++) {
        var Student = prompt("Enter your mark.  ");
        Avg += Student;
    }
    window.alert(Avg/5);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-22
      • 2016-12-11
      • 2023-01-09
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      相关资源
      最近更新 更多