JavaScript基础——第七节(1):流程控制(顺序结构,分支结构,选择结构)

一.JavaScript流程控制

1. 学习目标

  • 能够使用if分支语句
  • 能够使用switch分支语句
  • 能够使用三元表达式
  • 能够说出循环的目的
  • 能够说出for循环的执行过程
  • 能够使用断点调试来观察代码的执行过程
  • 能够使用for循环完成累加求和等案例
  • 能够使用双重for 循环完成乘法表案例
  • 能够说出while循环和do while循环的区别
  • 能够说出break 和continue的区别

2. 流程控制

在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能。

🤗🤗简单理解︰流程控制就是来控制我们的代码按照什么结构顺序来执行

流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,这三种结构代表三种代码执行的顺序。

2.1 程序三大流程控制语句

 以前我们写的代码,写几句就从上往下执行几句,这种叫顺序结构
 有的时候要根据条件选择执行代码,这种就叫分支结构
 某段代码被重复执行,就叫循环结构
在这里插入图片描述

3. 顺序流程控制

顺序结构是程序中最简单、最基本的流程控制,它没有特定的语法结构,程序会按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

在这里插入图片描述

4. 分支流程控制—— if 语句

由上到下执行代码的过程中,根据不同的条件执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果

在这里插入图片描述
JS语言提供了两种分支结构语句

  • if语句
  • switch语句

4.1 if 语句——单分支语句

语句可以理解为一个行为,循环语句和分支语句就是典型的语句。一个程序由很多个语句组成,一般情况下,会分割成一个一个的语句。
在这里插入图片描述

  • 如果if里面的条件表达式结果为真 true, 则执行大括号里面的执行语句

  • 如果if条件表达式结果为假,则不执行大括号里面的语句,则执行if 语句后面的代码

  • 小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型在这里插入图片描述

4.1.1 if语句的案例:进入网吧
要求:弹出一个输入框,要求用户输入年龄,如果年龄大于等于18岁,允许进网吧。
思路:
  • 弹出prompt输入框,用户输入年龄,程序把这个值取过来保存到变量中
  • 使用if语句来判断年龄,如果年龄大于18,就执行if大括号里面的输出语句
代码:
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
       var age =prompt('请输入您的年龄');
       if(age>=18){
           alert('去网吧');
       }
    </script>
</head>
<body>
    
</body>
</html>

4.2 if 语句——双分支语句

4.2.1 语法结构

在这里插入图片描述

<script>
       var age =prompt('请输入您的年龄');
       if(age>=18){
           alert('去网吧');
       }else{
           alert('回家写作业')
       
       }
</script>
4.2.2 执行流程

在这里插入图片描述

4.2.3 案例分析
题目:接收用户输入的年份,如果是闰年就弹出闰年,否则弹出是平年
分析:
  • 算法︰能被4整除且不能整余100的为闰年(如2004年就是闰年,1901年不是闰年)或者能够被400整除的就是闰年
  • 弹出prompt输入框,让用户输入年份,把这个值取过来保存到变量中
  • 使用 if语句来判断是否是闰年,如果是闰年,就执行if大括号里面的输出语句,否则就执行else里面的输出语句
  • 一定要注意里面的且&&还有或者||的写法,同时注意判断整除的方法是取余为0
代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
       var year=prompt('请您输入年份:');
       if(year%4==0 && year % 100 !=0 || year%400==0){
           alert('您输入的年份是闰年');
       }else{
           alert('您输入的年份是平年')

       }
    </script>
</head>
<body>
    
</body>
</html>

4.3 if 语句——多分支语句

4.3.1 语法结构

在这里插入图片描述
在这里插入图片描述

4.3.2 执行流程

在这里插入图片描述

4.3.3 案例:判断成绩级别
要求∶接收用户输入的分数,根据分数输出对应的等级字母A、B、C、D、E。

其中:

  1. 90分(含)以上,输出:A
  2. 80分(含)~90分(不含),输出:B
  3. 70分(含)~80分(不含),输出:C
  4. 60分(含)~70分(不含),输出:D
  5. 60分(不含)以下,输出∶E
分析
  • 按照从大到小判断的思路
  • 弹出prompt输入框,让用户输入分数,把这个值取过来保存到变量中
  • 使用多分支if else if 语句来分别判断输出不同的值
代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
      var score=prompt('请您输入分数');
      if(score>=90){
          alert('A')

      }else if(score>=80&& score <90){
          alert('B')

      }else if(score>=70&& score <80){
          alert('C')

      }else if(score>=60&& score <70){
          alert('D')

      }else if(score>60){
          alert('E')

      }
    </script>
</head>
<body>
    
</body>
</html>

5. 三元表达式

5.1 有三元运算符组成的式子我们称为三元表达式

5.2 语法结构

条件表达式 ? 表达式1 : 表达式

5.3 执行思路

条件表达式结果为真,则返回表达式1的值;如果条件表达式结果为假,则返回表达式2的值

var num = 10;
var result = num > 5? ‘是的’;‘不是的';//我们知道表达式是有返回值的
console.log(result);

5.4 案例:数字补0(倒计时的程序)

题目:用户输入数字,如果数字小于10,则在前面补О,比如01, 09,如果数字大于10,则不需要补,比如20。在这里插入图片描述

分析
  • 用户输入0~59之间的一个数字
  • 如果数字小于10,则在这个数字前面补0,(加O)否则不做操作
  • 用一个变量接受这个返回值,输出
代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
     var time =prompt('请输入一个0~59之间的一个数字');
     // 三元表达式表达式?表达式1:表达式2

     var result = time<10 ? '0'+time : time; // 把返回值赋值给一个变量
     alert(result);

    </script>
</head>
<body>
    
</body>
</html>

6. 分支流程控制——switch语句

switch语句也是多分支语句,它用于基于不同的条件来执行不同的代码。当要针对变量设置一系列的特定值的选项时,就可以使用switch。

6.1 语法结构:

在这里插入图片描述

6.2 执行思路

利用我们的表达式的值和 case后面的选项值相匹配,如果匹配上,就执行该case里面的语句,如果都没有匹配上,那么执行default里面的语句
在这里插入图片描述

  1. 开发里面表达式,我们经常写成变量
  2. 我们num 的值和 case里面的值相匹配的时候是全等,必须是值和数据类型一致才可以
  3. break 如果当前的case里面没有break,则不会退出switch, 是继续执行下一个case

6.3 案例:查询水果

题目

用户在弹出框里面输入一个水果,如果有就弹出该水果的价格,如果没有该水果就弹出“没有此水果“

分析:
  • 弹出prompt输入框,让用户输入水果名称,把这个值取过来保存到变量中。
  • 将这个变量作为switch括号里面的表达式。
  • case后面的值写几个不同的水果名称,注意一定要加引号,因为必须是全等匹配。
  • 弹出不同价格即可。同样注意每个case之后加上 break,以便退出switch语句。
  • 将default设置为没有此水果。
代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
     var fruit=prompt('请输入您要查询的水果');
     switch(fruit){
        case '苹果':
            alert('苹果的价格是3.5/斤');
            break;
         case '榴莲':
            alert('榴莲的价格是35/斤');
            break;
        default:
            alert('没有此水果');
     }

    </script>
</head>
<body>
    
</body>
</html>

6.4 switch语句和if else if 语句的区别

  • 一般情况下,它们两个语句可以相互替换
  • switch…case语句通常处理case为比较确定值的情况,而 if…else…语句更加灵活,常用于范围判断(大于、等于某个范围)
  • switch语句进行条件判断后直接执行到程序的条件语句,效率更高。而if…else语句有几种条件,就得判断多少次。
  • 当分支比较少时,if…else语句的执行效率比switch语句高。
  • 当分支比较多时,switch语句的执行效率比较高,而且结构更清晰。

7 循环控制

7.1 循环目的

在实际问题中,有许多具有规律性的重复操作,因此在程序中要完成这类操作就需要重复执行某些语句

7.2 循环语句的分类

在Js 中,主要有三种类型的循环语句:

  • for循环
  • while循环
  • do…while循环

8. 断点调试

  • 作用:学习时可以帮助更好的理解代码运行,工作时可以更快找到bug
  • 浏览器打开调试界面
  1. 按F12打开开发者工具
  2. 点到sources一栏
  3. 选择代码文件
  • 断点:在某句代码上加的标记就叫断点当程序执行到这句有标记的代码时会暂停下来在这里插入图片描述

  • 断点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。

  • 断点调试可以帮我们观察程序的运行过程

  • 浏览器中按F12–> sources -->找到需要调试的文件–>在程序的某一行设置断点

  • Watch:监视,通过watch可以监视变量的值的变化,非常的常用。

  • F11:程序单步执行,让程序一行一行的执行,这个时候,观察watch中变量的值的变化。

  • 代码调试的能力非常重要,只有学会了代码调试,才能学会自己解决bug的能力。初学者不要觉得调试代码麻烦就不去调试,知识点花点功夫肯定学的会,但是代码调试这个东西,自己不去练,永远都学不会。

  • 今天学的代码调试非常的简单,只要求同学们记住代码调试的这几个按钮的作用即可,后面还会学到很多的代码调试技巧。

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不能瞌睡呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值