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
通过以上的方式可以看到代码每一步的执行结果,当遇到期望值不符合时就是那一行代码有问题。能够帮助我们定位到错误的位置,根据自己的经验和知识,分析出错误的原因,然后解决他。
// 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
通过以上的方式可以看到代码每一步的执行结果,当遇到期望值不符合时就是那一行代码有问题。能够帮助我们定位到错误的位置,根据自己的经验和知识,分析出错误的原因,然后解决他。
相关文章推荐
- 选择结构的程序设计——if和switch使用
- switch语句实现多分支选择结构
- 3.20 switch结构 if和switch的选择
- C语言的选择结构 (if 语句 和 switch 语句)
- 条件选择语句(if结构与switch结构)
- javascript中的switch结构和错误调试
- 房上的猫:switch选择结构,与选择结构总结
- 【学习笔记】【C语言】选择结构-switch
- html5--switch选择结构的优化
- C语言学习-选择结构if语句、switch语句
- 选择结构--if和switch语句
- java学习09--选择结构-switch语句
- swift switch选择结构
- switch语句与多重if选择结构的异同点
- javascript中的选择结构if和switch的简单使用方式及实际操作的易错点
- h5实训(三)选择结构
- java面试中一个经典的switch选择结构面试题
- 选择结构(if..else..,switch,try..catch..)的拆分
- 20150727 Day04课程——Switch选择结构