要求:用户输入班级人数,依次填入每个学生成绩,最后打印学生总成绩及平均成绩。
分析:首先我们先捋一下思路。
- 想要输入班级人数,得弹出输入框,输入班级总人数(num)。
- 接下来就是依次填入每个学生成绩,并保存下来(score),留着做后面的运算,依次弹出输入框输入学生成绩,此时我们就需要用到 for 循环,弹出次数和班级。
- 弹出的次数取决于我们输入的班级人数,也就是 i <= num 。
- 接下来就是计算成绩了,先求出总成绩(sum),再求平均成绩(average)。
接下来咱们一起看一下吧:
var num = prompt ('请输入班级的总人数:'); // num 总的班级人数
var sum = 0; //求和的变量
var average = 0; //求平均值的变量
for ( var i =1; i <= num ; i ++){
var score = prompt('请输入第'+ i +'个学生成绩');
sum = sum + score;
}
average = sum / num ;
alert ('班级总的成绩是'+ sum );
alert ('班级平均分是:'+ average );
假设班级人数是三人,第一位同学考了10分,第二位同学考了15分,第三位同学考了20分.
咱们跑一下看一下结果:
显然是错的,那么问题出在哪呢?
咱们来看一下问题出在哪:
for ( var i =1; i <= num ; i ++){
var score = prompt('请输入第'+ i +'个学生成绩');
// sum = sum + score; 错的,大家以后一定要注意这个易错点
//因为从 prompt 取过来的数据是字符串型的需要转换为数字型
sum = sum + parseFloat ( score ); // 这个才是正确的写法
}
所以正确的完整代码如下:
var num = prompt ('请输入班级的总人数:');
var sum = 0;
var average = 0;
for ( var i =1; i <= num ; i ++){
var score = prompt('请输入第'+ i +'个学生成绩');
sum = sum + parseFloat ( score );
}
average = sum / num ;
alert ('班级总的成绩是'+ sum );
alert ('班级平均分是:'+ average );
搞定!
拜拜!