您的位置:首页 > Web前端 > HTML5

h5 选择结构 调试 switch

2017-11-16 16:52 225 查看
1、 制作一个四则运算器,要求输入一个数再输入一个算数运算符再输入一个数,计算出对应的结果。

//    1、接收用户输入的第一个数

//    2、接收用户输入的运算符

//    3、接收用户输入的第二个数

//        判断op 如果等于+ 就对两个数进行加法运算

//        判断op 如果等于- 就对两个数进行减法运算

//        判断op 如果等于* 就对两个数进行乘法运算

//        判断op 如果等于/ 就对两个数进行除法运算

    var num1=Number(prompt("输入一个数"));

    varop=prompt("输入一个算术运算符");

    var num2=Number(prompt("再输入一个数"));

    //var s=0;

    if(op=="+"){

        s=num1+num2;

    }elseif(op=="-"){

        s=num1-num2;

    }elseif(op=="*"){

        s=num1*num2;

    }elseif(op=="/"){

        if(num2!=0){

            s=num1/num2;

        }else{

            alert("分母不能为0");}   }

    alert("运算结果为:"+s);

 

选择还有swich(开关)

Swich(x){

Case a:

Break;

Case b:

Default;

}

/    1、接收用户输入的第一个数

//    2、接收用户输入的运算符(op)

//    3、接收用户输入的第二个数

//    4、定义一个数并赋值为0(s)

//    5、根据运算符判断switch语句

//        判断op 如果等于+ 就对两个数进行加法运算

//        判断op 如果等于- 就对两个数进行减法运算

//        判断op 如果等于* 就对两个数进行乘法运算

//        判断op 如果等于/ 就对两个数进行除法运算

    var num1=Number(prompt("输入一个数"));

    var op=prompt("输入一个算术运算符");

    var num2=Number(prompt("再输入一个数"));

    var s=0;

    switch(op){

        case "+":

            s=num1+num2;

            break;

        case "-":

            [b]s
=num1-num2;

            break;

        case "*":

            s=num1*num2;

            break;

        case "/":

            s=num1/num2;

            break;

    }

    alert("运算结果为:"+s);

 

它的执行效率比if快得多。她会将所有的可能放在内存当中,case就是标号,当条件满足这个标号时直接进入这个情况里面。

Switch:优点:

1、结构清晰,一目了然

2、运行速度相对较快

Switch执行逻辑:从switch后面的小括号里面的变量与后面case中的常量相等的地方开始执行,然后依次后面的指令。一直到指令结束。

Case:并不会参与运算,不起条件判断作用,只起到一个标号的作用。只是执行指令的入口。

Default就是除了case以外的情况。

Break并不是switch语法中的内容。他不属于switch只是一个辅助工具用于跳出出当前结构。

改写献血量

//    1、接收用户输入的体重weight和血红蛋白含量Hb

    //   2、定义起步输血量p1=7,p2=10,p3=15

    //   3、判断Hb是否超过30

    //      否:Math.ceil(weight)*p1(num)

    //      是:再判断Hb是否超过60

//                否:Math.ceil(weight)*p2(num)

//                是:Math.ceil(weight)*p3(num)

    //   4、输出献血量

    var weight=Number(prompt("输入体重数"));

    var Hb=Number(prompt("输入血红蛋白含量"));

    var p1=7;

    var p2=10;

    var p3=15;

    var num=0;

    //改写switch

    switch(Math.floor(Hb/30)){

        case 0:

        num=weight*p1;

            break;

        case 1:

            num=weight*p2;

            break;

        default:

            num=weight*p3;

            break;

    }

//    if(Hb<30){

//        var num=Math.ceil(weight)*p1;}

//    else{

//        if(Hb<=60){

//            varnum=Math.ceil(weight)*p2;

//        }else{

//            varnum=Math.ceil(weight)*p3;

//        }

//    }

    alert("输血量为:"+num);//这里用+作连接

百分制转化为4分制。

A、80以上

B、70-80

C、60-70

D、60以下

//    1、接收学生输入的成绩

//    2、将成绩除于10取整score

//    3、判断score的值
var score=Number(prompt("输入学生的成绩"));

    var res="";
switch(Math.floor(score/10)){

    case 1:

    case 2:

    case 3:

    case 4:

    case 5:

        res='D';

        break;

    case 6:

        res='C';

        break;

    case 7:

        res='B';

        break;
default:

    res='A';

    break;

}

    alert(res);

 

根据用户输入的日期,计算在这一天是当前年的第几天。(不考虑闰年)

 

var month=Number(prompt("输入月份"));
var days=Number(prompt("输入日期"));
switch(month-1){

    case 11:

        days+=30;

    case 10:

       days+=31;

    case 9:

        days+=30;

    case 8:

        days+=31;

    case 7:

        days+=31;

    case 6:

        days+=30;

    case 5:

        days+=31;

    case 4:

        days+=30;

    case 3:

        days+=31;

    case 2:

        days+=28;

    case 1:

        days+=31;

}
alert(days);

考虑闰年 4年一闰,百年不闰;4百年再闰

  var year=Number(prompt("输入年"));

    var month=Number(prompt("输入月份"));

    var days=Number(prompt("输入日期"));

    switch(month-1){

        case 11:

            days+=30;

        case 10:

            days+=31;

        case 9:

            days+=30;

        case 8:

            days+=31;

        case 7:

            days+=31;

        case 6:

            days+=30;

        case 5:

            days+=31;

        case 4:

            days+=30;

        case 3:

            days+=31;

        case 2:

            if((year%4==0&&
year%100!=0)||year%400==0){

            days+=29;

            }else{

                days+=28;}

        case 1:

            days+=31;

        }

    alert(days);

错误分为两种

   语法错误

   逻辑错误

 

右击浏览器选择检查,或者f12进入开发者工具。错误信息会在console窗口下提示。

上面的步骤同时进一步说明了解释型语言的特点,翻译一条执行一条。遇到错误的时候才终止。

逻辑错误:

如何调试逻辑错误:

语法没有问题,得到的结果与期望得到的结果不符合。并不会console的窗口下而去提示错误信息。

在source下面可以看到js代码。在里面可以设置断点。

代码执行到断点处就暂停执行(在代码左侧)

可以让代码单步执行快捷键f10

同时可以查看代码中任意一个表达式或者变量的值

1、手动添加watch

2、右击选中的表达式选择添加到watch

 

通过以上的方式可以看到代码每一步的执行结果,当遇到期望值不符合时就是那一行代码有问题。能够帮助我们定位到错误的位置,根据自己的经验和知识,分析出错误的原因,然后解决他。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: