先看一下题目:

统计考试科目的成绩

需求说明:

1.使用prompt()方法输入考试科目的数量,要求数量必须是非零、非负数的数值类型,否则给出相应提示并退出程序;
2.根据考试科目的数量,使用prompt()方法输入各科的考试成绩并累加,要求成绩必须是非负数的数值类型,否则给出相应提示并退出程序;

3.如果各项输入正确,则弹出总成绩。

练习作品:

body部分:

<form class="" action="#" method="post">
        <input type="button" name="" value="输入考试科目的数量" onclick='start()'>
    </form>
View Code

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;
        }
    }    
View Code

总结:

1.感觉遇到的主要困难,对数字的多次验证有点麻烦,但是我不会更好的方法。所以虽然写得很烂,但还是用了。

2.不会正则表达式,现搜现学的。整个练习完成时间大约两个半小时。基础不牢,一些函数也是现查现用。

3.菜鸟,勿喷。水一水,有人看我很开心,没人看就当笔记了。

posted on 2019-05-23 21:11  天崖天涯  阅读(651)  评论(0编辑  收藏  举报