自学js第五天:JS控制语句和弹窗交互和debug调试

控制流程语句

编程的三种基本结构

顺序结构(标准文档流)

从上到下执行的代码就是顺序结构

程序默认就是由上到下顺序执行的

分支结构(if/else三目 switch)

根据不同的情况,执行对应代码

循环结构(for /while /do…while )

循环结构:重复做一件事情

一.分支结构

1.if分支语句

if语法结构:
//第一种结构
if (/* 条件表达式 */) {
   
  // 执行语句
}

//第二种结构
if (/* 条件表达式 */){
   
  // 成立执行语句
} else {
   
  // 否则执行语句
}

//第三种结构
if (/* 条件1 */){
   
  // 成立执行语句
} else if (/* 条件2 */){
   
  // 成立执行语句
} else if (/* 条件3 */){
   
  // 成立执行语句
} else {
   
  // 最后默认执行语句
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>控制流程 分支 if</title>
</head>

<body>
  <script>

    /*
    书写格式
    if (表达式) {  //表达式切记一定会返回一个布尔值(涉及隐式强转为布尔类型),否则报错

    }

  */
    var x = 0;
    if (x) {
    //隐式0转为false
      console.log('hahahha');
    }

    var x = 10;
    if (x) {
    //隐式10转为true
      console.log('hahahha');
    }



    //我要和张三求婚 如果我兜里的钱大于 10000 求婚成功 如果 小于10000 求婚失败
    var money = 10; //我们现在有 10块钱

    if...
    //如果if条件满足 执行if {} 里的语句
    if (money > 10000) {
    //不满足条件
      console.log('求婚成功!!!'); //并没有执行
    }

    //if...else
    //当条件满足的时候 执行if里的语句 当条件不满足的时候 执行 else里的语句
    if (money > 10000) {
    //不满足条件
      console.log('求婚成功!!!'); //并没有执行
    } else {
   
      console.log('求婚失败!!!');
    }

    //if...elseif...else
    //我要和张三求婚 如果钱大于10000 求婚成功 如果 (小于10000 但是 大于5000) 他考虑考虑 如果小于 5000 求婚失败
    money = 5010;

    if (money > 10000) {
   
      console.log('求婚成功!!!');
    } else if (money < 10000 && money > 5000) {
     //与5000<money<10000
      console.log('考虑考虑!!!');
    } else {
   
      console.log('求婚失败!!!');
    }

    // 3000
    if (money > 10000) {
   
      console.log('求婚成功!!!');
    } else if (money > 5000) {
   
      console.log('考虑考虑!!!');
    } else {
   
      console.log('求婚失败!!!');
    }


  


    //张三说 如果你有大钻戒并且有5000以上的money 求婚成功 如果你有大钻戒但是money不足5000 考虑考虑  如果你没有大钻戒 但是你有10000以上money 求婚成功 如果你没有大钻戒 money不足10000 求婚失败


    /*
      1. 有大钻戒 money>5000 求婚成功
      2. 有大钻戒 money<5000 考虑考虑
      3. 没有大钻戒 money > 10000 求婚成功
      4. 没有大钻戒 money < 10000 求婚失败


      成功
        1. money > 10000
        2. money > 5000 && 有钻戒

      考虑考虑
        1.  有钻戒 && money < 5000   //大于5000,可以没有钻戒
        2. money ===10000; //没有钻戒,但是得有一万

      失败
        1. 没有钻戒 money < 10000


    */
    //张三补充加说: 如果你有正好10000 但是没有钻戒 我也考虑考虑
    money = 10000;
    var diamondRing = false; //钻戒 有 true 没有 false

    //&&优先级是大于||的,如果你分不清,可以各自加括号先圈起来.
    if (money > 10000 || (money > 5000 && diamondRing)) {
   
      console.log('求婚成功');
    } else if (money === 10000 || (diamondRing && money < 5000)  ) {
   
      console.log('考虑考虑');
    } else {
   
      console.log('求婚失败');
    }
    //PS:如果逻辑没写好,结果不对, 则用你写好的语句条件,去和需求一个一个比,看是否冲突 5tm



    //四种写法:打分 小明考试 0 - 100  A 100 - 91 B 90 - 81 C 80 - 71 D 70 -61 E <= 60

    //第一种:冗余写法,每次都要输出一次结果,但也是最常见的.
    var score = 100;  // 手动输入的分数
    if (score>100 || score < 0) {
   
      console.log("分数输入有误");
    } //边界限制 防止小明自己篡改分数为 -10分
     
      if (score <= 100 && score > 90) {
   
        console.log("A");
      } else if (score > 80) {
   
        console.log("B");
      } else if (score > 70) {
   
        console.log("C");
      } else if (score > 60) {
   
        console.log("D");
      } else {
   
        console.log("E");
      }
       
    
   

    //第二种修改:自己写的: (提取预制结果grade变量,分两次if写)
    var score = 1000; 
    var grade = 'E'; //默认预制结果是最低结果"E",即最后都没符合的就会去"E"
    if ( score>100 || score < 0 || !isNaN(score)) {
    
      //边界限制 防止小明自己篡改分数为 不合理分数
        grade="您输入的分数有误,请重新输入"; 
      
     }else if (score <= 100 && score > 90) {
   
        grade = 'A';
      } else if (score > 80) {
   
        grade = 'B';
      } else if (score > 70) {
   
        grade = 'C';
      } else if (score > 60) {
   
        grade = 'D';
      } 
      
      if(score>100 || score < 0 || !isNaN(score)){
   
        console.log(grade);
      }else{
   
        console.log("您分数的等级为:"+ grade);
      }
       

     //第三种修改:(提取预制结果grade变量,推荐if套if一次性写完)
    // 逆向思维,上面是score>100和<0时会怎么样,但是这里是逆向思维,反过来规定0<=score<=100.
    var score = 100;
    var grade = 'E'; //默认预制结果是最低结果"E",即最后都没符合的就会去"E"
    if ( score<=100 || score >= 0 || !isNaN(score)) {
      //这里是和第二种最大的区别
    
     if (score <= 100 && score > 90) {
   
        grade = 'A';
      } else if (score > 80) {
   
        grade = 'B';
      } else if (score > 70) {
   
        grade = 'C';
      } else if (score > 60) {
   
        grade = 'D';
      }
      console.log("您分数的等级为:"+ grade);
      
    } else{
   
      console.log("您输入的分数有误,请重新输入");
     
    }


     //第四种:错误bug写法当scroe为非法数时,会输出两次两次的
    var score = NaN; 
    var grade = 'E'; //默认预制结果是最低结果"E",即最后都没符合的就会去"E"
    if ( score>100 || score < 0 || isNaN(score)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值