先看一下题目:
1.使用prompt()方法输入考试科目的数量,要求数量必须是非零、非负数的数值类型,否则给出相应提示并退出程序;
2.根据考试科目的数量,使用prompt()方法输入各科的考试成绩并累加,要求成绩必须是非负数的数值类型,否则给出相应提示并退出程序;
3.如果各项输入正确,则弹出总成绩。
练习作品:
body部分:
<form class="" action="#" method="post"> <input type="button" name="" value="输入考试科目的数量" onclick=‘start()‘> </form>
js部分:
function start(){ // 获取课程数,课程数要求非0非负 var subjectNum; subjectNum = prompt("考试科目数量",""); if(!isInt(subjectNum)){ alert(‘输入的不是正整数,请重新输入!‘); }else if(parseInt(subjectNum) == 0){ alert(‘输入数字不能为0,请重新输入‘); }else if(parseInt(subjectNum) > 0){ sumDegree(parseInt(subjectNum)); } } function sumDegree(subjectNum){ // 计算总成绩,要求成绩非负 var totalScore = 0; for(var i = 0; i < subjectNum; i++){ var degree = prompt(‘请输入考试成绩‘,‘‘); if(!isInt(degree)){ alert(‘输入的不是正整数,请重新输入!‘); return }else if(parseInt(degree) > 0){ totalScore += parseInt(degree); } } alert(subjectNum + ‘门功课的总成绩为:‘ + totalScore); } function isInt(str){ // 验证字符串是否是非负整数 if(/^[0-9]+$/.test(str)){ return true; }else{ return false; } }
总结:
1.感觉遇到的主要困难,对数字的多次验证有点麻烦,但是我不会更好的方法。所以虽然写得很烂,但还是用了。
2.不会正则表达式,现搜现学的。整个练习完成时间大约两个半小时。基础不牢,一些函数也是现查现用。
3.菜鸟,勿喷。水一水,有人看我很开心,没人看就当笔记了。
原文:https://www.cnblogs.com/tianyatianya/p/10914539.html