最通俗易懂的JavaScript知识,应有尽有。

javascript每日知识更新

if函数的运用,switch、case函数的运用

代码的调试方法,经验在丰富的程序员也有出错的时候,而经验丰富的程序员之所以很厉害,就是因为他们的调试能力强,能够及时的发现语句中存在的问题,所以调试的运用就成了人人必备的知识。下面我为大家介绍最基本的if,switch,case函数的特点,并说明调试应注意的问题。


例:计算献血量

体重,血红蛋白含量Hb<30  7ml/kg

30-60  10

>60    15

//1、测出献血人的体重g
//2、测出献血人的血红蛋白x
//3、定义血红蛋白小于30的,献血7ml/kg
//定义血红蛋白在30-60的,献血10ml/kg
//定义血红蛋白大于60的,献血15ml/kg
//4、计算献血人的献血量
var g =Number(prompt("请输入献血人的体重"));
var x =Number(prompt("请输入献血人的血红蛋白含量"));
var ml=0;
if(x<30){
    ml=7*g;
    alert(ml)
}else if(x>60){
    ml = 15 * g;
    alert(ml)
} else {
    ml = 10 * g;
    alert(ml) }

求解一元二次方程的根  

//1 获取方程中的二次项系数a 一次项系数b 常数项 c
   // 2 判断b*b-4*a*c跟0的关系
    //3 如果大于0则有两个根。
   // 则输出x1=(-b-sqrt(b^2-4ac))/2a x2=(-b+sqrt(b^2-4ac))/2a
   // 4 如果等于0则有且只有一个根。
   // x=(-b)/2a
   // 5 如果小于0,则不存在根
var a=Number(prompt("请输入方程的二次项系数a"));
    var b=Number(prompt("请输入方程的一次项系数b"));
    var c=Number(prompt("请输入方程的常数c"));
    var r=b*b-4*a*c;
       if(a!=0){
        if(r>0){
        var x1=(-b+Math.sqrt(r))/2*a;
        var x2=(-b-Math.sqrt(r))/2*a;
        alert(x1+"   "+x2);
        }else {
        if (r == 0) {
            varx = -b / 2 * a;
            alert(x);
        }
        else {
            alert("无解");
        }}}
       else
              
alert("您输入的不是一元二次方程");

制作一个四则运算器,要求用户输入一个数再输入一个算术运算符在输入一个数,计算出对应的结果。
//1  获取用户输入的一个数num1,一个运符op,一个数num1
    //2 判断op  如果等于 + 就对两个数进行加法运算
   //判断op  如果等于- 就对两个数进行减法运算
  //判断op  如果等于* 就对两个数进行乘法运算
   //判断op  如果等于/ 就对两个数进行除法运算(判断除数是否为0,如果为0,则提示输入错误)
   //
var num1=Number(prompt("请用户输入第一个数"));
   var op=prompt("请用户输入一个算数运算符");
   var num2=Number(prompt("请用户输第二个数"));
var result=0;
  if(op=="+"){
      result=num1 + num2;
  }else if(op == "-"){
      result=num1 -num2;
  }else if(op == "*"){
      result=num1 *num2;
  }else if(op == "/"){
      if(num2!=0){
      result=num1 /num2;
  } alert(result)

else{
      alert("除数不能为0")}
  }else{
      alert("符号有错误");
  }

选择还有switch(开关)

switch(x){

case a;

break;

case b;

default;

}

他的执行效率比if快得多,switch将所有的可能放在内存当中,case就是标号,当条件满足这个标号是直接进入这个情况。用空间换时间。

四则运算改为switch:

var num1=Number(prompt("请用户输入第一个数"));
 var op=prompt("请用户输入一个算数运算符");
 var num2=Number(prompt("请用户输第二个数"));
 var result=0;
switch(op){
    case"+":
        result=num1+num2;
        break;
    case"-":
         result=num1-num2;
        break;
    case"*":
        result=num1*num2;
        break;
    case"/":
        result=num1/num2;
        break;
}
 alert(result)

break如果不加就是一直执行,输出结果为除法,加上break,执行了什么就终止。

Switch优点:

1   结构清晰,一目了然

2   运行速度相对较快

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

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

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

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

例:献血的题目改为switch:

var g =Number(prompt("请输入献血人的体重"));
 var x =Number(prompt("请输入献血人的血红蛋白含量"));
var ml=0;
// x/30 0-1,1-2,2-;
 
switch(Math.floor(x/30)){
     case 0:
             ml=7*g;
     break;
     case 1:
             ml=10*g;
         break;
     default:
         ml=15*g;
         break;
 }
 alert(ml)

   百分制转化为5分制。

// 1 接收学生输入的分数
// 2 将分数除以10取整result
// 3 A等级为80分以上   B等级为70-80分 C等级为60-70分  D等级为60分以下
// 4 向下取整 A 8 9 10    B 7   C 6    D 0-6
// 5 得出结果
var result  =Number(prompt("请输入学生的分数"));

var res=””;
switch(Math.floor(result/10)) {
    case 10:
    case 9:
    case 8:
        res="A";
        break;
    case 7:
        res="B";
        break;
    case 6:
        res="C";
        break;
    default:
        res="D";
        break;}
alert(res)

A 90分以上

B 70-8-以上

C 60-70

D 60以下

例:11.16是今年的第几天。不考虑闰年。

var month =Number(prompt("请输入月份"))
var rate =Number(prompt("请输入日期"))
var day=0;
switch(month-1){case 11:day+=30;
    case 10:day+=31;
    case 9:day+=30;
    case 8:day+=31;
    case 7:day+=31;
    case 6:day+=30;
    case 5:day+=31;
    case 4:day+=30;
    case 3:day+=31;
    case 2:day+=28;
    case 1:day+=31;
    case 0:day+=0;
            day+=rate;
            alert(day);  
}

例:4年一闰  百年不闰   400年在闰

var month =Number(prompt("请输入月份"));
var rate =Number(prompt("请输入日期"));
var year =Number(prompt("请输入年份"));
var day=0;
switch(month-1){case 11:day+=30;
    case 10:day+=31;
    case 9:day+=30;
    case 8:day+=31;
    case 7:day+=31;
    case 6:day+=30;
    case 5:day+=31;
    case 4:day+=30;
    case 3:day+=31;
    case 2:
        if((year%4==0&&year%100==0)||(year%400==0)){
            day+=29;
        }else{
            day+=28;
        }

    case 1:day+=31;
    case 0:day+=0;}
        day+=rate;
        alert(day)

 

错误与调试

错误分两种:语法错误,逻辑错误

语法错误:

var a=3;
alert(a);
a++;
aletr(a);

将alert错写成aletr。

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

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

如何调试逻辑错误:

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

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

代码执行到断点就暂停执行(在代码左侧单击即可)

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

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

1   手动添加watch

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

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值