统计考试科目的成绩
- 使用prompt()方法输入考试科目的数量,要求必须非零,非负数,否则给出相应提示并退出程序。
- 根据考试科目的数量,使用prompt()方法输入各科的考试成绩并累加,要求成绩必须为非负数,否则给出相应提示并退出程序。
- 如果各项输入正确,则输出科目总成绩。展示部分图片如下:
-
<input name="btn" type="button" value="统计考试成绩" onclick="count(prompt('请输入考试科目数量'));" /> <script type="text/javascript"> function count(num){//有参函数,num=prompt('请输入考试科目数量') var sum=0; if(isNaN(num)){//判断是否为非数字,如果num为非数字,那么输出alert,否则执行下面的条件判断 alert("输入的不是数字!"); }else if(num<=0){ alert("输入的考试科目无效"); }else{ for(var i=1;i<=num;i++){//最终i=num var score=prompt("请输第"+i+"门科目成绩:"); if(isNaN(score)){ alert("成绩必须是数字!"); break;//直接退出for循环 }else if(score<0) { alert("成绩不能是负数!"); break; }else sum+=parseFloat(score);//等于sum=sum+paraseFlow(sorce) //因为prompt()方法返回的是一个字符串型数据,所以用parseFlow()函数把字符串转换为浮点数 //sum+=parseInt(score) 这里不能用parseInt因为他无法准确的计算浮点数 } } if(sum!=0)//如果前面break了,而前面又声明了变量sum=0所以不会执行下面的语句 alert(num+"门科目的总成绩是:"+sum); } </script>
当然我们也可以对它进行修改,把有参函数改成无参函数:
-
<input name="btn" type="button" value="统计考试成绩" onclick="count();" /> <script type="text/javascript"> function count(){//无参函数 var num = prompt('请输入考试科目数量') var sum=0; if(isNaN(num)){的条件判断 alert("输入的不是数字!"); }else if(num<=0){ alert("输入的考试科目无效"); }else{ for(var i=1;i<=num;i++){ var score=prompt("请输第"+i+"门科目成绩:"); if(isNaN(score)){ alert("成绩必须是数字!"); break; }else if(score<0) { alert("成绩不能是负数!"); break; }else sum+=parseFloat(score); } } if(sum!=0) alert(num+"门科目的总成绩是:"+sum); } </script>
对于button标签,我们也可以这样写: <button οnclick="count()">统计考试成绩</button>
最后我们可以进一步进行拓展(如果输入错误给出提示并重新输入):
<button onclick="count()">统计考试成绩</button>
<script type="text/javascript">
function count(){//无参函数
var num = prompt('请输入考试科目数量')
var sum=0;
while(isNaN(num)){
alert("输入的不是数字!");
num = prompt('重新输入考试科目数量')
}
while(num<=0){
alert("输入的考试科目无效!");
num = prompt('重新输入考试科目数量')
}
for(var i=1;i<=num;i++){
var score=prompt("请输第"+i+"门科目成绩:");
while(isNaN(score)){
alert("成绩必须是数字!");
score=prompt("请输第"+i+"门科目成绩:");
}
while(score<0){
alert("成绩不能是负数!");
score=prompt("请输第"+i+"门科目成绩:");
}
sum+=parseFloat(score);
}
if(sum!=0)
alert(num+"门科目的总成绩是:"+sum);
}
</script>
那么上面的代码实现了输入错误能够重新输入,那我们是否可以修改最后的代码,把最后显示的代码中总成绩是有谁加上谁而得出来的
(待完成):