js控制流程和数组

女神节也要努力,愿每一个女神早日月薪过万!

一、表达式和语句

表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果。JavaScript整句或命令,JavaScript语句是以分号结束(可以省略)。

区别: 表达式计算一个值,但语句用来做事。

二、分支语句

程序三大流程控制语句:

  • 顺序结构:从上到下执行
  • 分支结构:条件选择执行
  • 循环结构:重复循环执行

1、if语句

if语句有三种使用方法,单分支、双分支、多分支。if()括号里的条件为真,语句被执行。

  • 单分支:if (条件) { 满足条件执行的语句 }
  • 双分支:if (条件) { 满足条件执行的语句 } else { 不满足条件执行的语句 }
  • 多分支:if (条件1) { 代码1 } else if (条件2) { 代码2 } else if ( 条件3 ) { 代码3 } ... else { 代码n }

实例:

        // 分支语句 分时问候
        let time = prompt('请输入时间:')
        if (time < 12) {
            document.write('上午好!')
        } else if (time < 18) {
            document.write('下午好!')
        } else if (time < 20) {
            document.write('晚上好!')
        } else {
            document.write('夜深了,头发还好吗?')
        }

2、三元运算符

其实是比if双分支更简单的写法,有时候也叫做三元表达式。

  • 三元运算符:条件 ? 满足条件执行的代码 : 不满足条件的代码

实例:

        // 数字补0
        let num = prompt('请输入数字')
        let t = num < 10 ? 0 + num : num
        document.write(t)

3、switch语句

switch case语句一般用于等值判断,不适合用于区间判断。需要配合break关键字使用,没有会造成case穿透。当()里的数据与case值全等(===)时,执行相应代码语句。也可用多分支代替。

  • switch语法:switch (数据) { case 值1: 代码1; break; case 值2: 代码2; break; default: 代码n; break; }

实例:

        // 简单计算器
        let num1 = +prompt('请输入第一个数字:')
        let num2 = +prompt('请输入第二个数字:')
        let sp = prompt('请输入运算符号:')
        switch (sp) {
            case '+' :
                alert(`您选择的是加法,结果是:${num1 + num2}`) 
                break
            case '-' :
                alert(`您选择的是减法,结果是:${num1 - num2}`) 
                break
            case '*' :
                alert(`您选择的是乘法,结果是:${num1 * num2}`) 
                break
            case '/' :
                alert(`您选择的是除法,结果是:${num1 / num2}`) 
                break
            default :
                alert('请输入 + - * /')
        }

三、循环语句

断点调试

断点调试用于更快找出bug。

调试步骤:

  1. F12打开开发者工具
  2. 点到sources一栏
  3. 选择代码文件
  4. 单击某一行设置断点,刷新页面

图示:

在这里插入图片描述

1、while循环

  • while循环语法:white (循环条件) { 要重复的代码 }

循环三要素:

  1. 变量起始值
  2. 终止条件(没有终止条件,循环会一直进行,造成死循环)
  3. 变量变化量(用自增或自减)

实例:

        let i = 1 
        while (i <= 10) {
            document.write(`月薪过${i}万<br>`)
            i++
        }

循环退出

  • continue:结束本次循环
  • break:跳出所在循环

2、for循环

  • for循环语法:for (起始值; 循环条件; 变化值) { 循环体 }

for循环通常用于遍历明确次数的数组,当不明确遍历次数时用white循环。

3、for循环嵌套

一个循环里再套一个循环,一般用在for循环里。

打印九九乘法表实例:

<!DOCTYPE html>
<html lang="en">
<head>
    <style>
        span{
            display: inline-block;
            width: 80px;
            margin: 5px;
            padding: 0 10px;
            text-align: center;
            background-color: blueviolet;
            border: 1px solid rgb(96, 8, 179);
            border-radius: 5px;
            box-shadow: 2px 2px 2px rgba(0, 0, 0, .2);
        }
    </style>
</head>
<body>
    <script>
        for (let i = 1; i <= 9; i++) {
            for (let j = 1; j <= i; j++) {
                document.write(`<span>${i} x ${j} = ${i * j}</span>`)
            }
            document.write('<br>')
        }
    </script>
</body>
</html>

效果:
在这里插入图片描述

四、数组

数组是一种可以按照顺序保存数据的数据类型。

1、数组基本用法

  • 声明数组,赋值数组
  • 元素,下标,长度变量.length
  • 遍历数组

实例:

        let arr = [2, 6, 1, 7]
        let sum = 0
        for (let i = 0; i < arr.length; i++) {
            sum += arr[i]
        }
        average = sum / arr.length
        document.write(`这个同学的总分是:${sum},平均分是:${average}`)
        // 这个同学的总分是:16,平均分是:4

2、操作数组

操作数组就是增删改查语法。

  • 数组添加数据:arr.push(新增的内容) arr.unshift(新增的内容)
  • 删除数组中数据:arr.pop() arr.shift() arr.splice(操作的下标, 删除的个数)
  • 重新赋值:数组[下标] = 新值
  • 查询/访问数组数据:数组[下标]

(1)数组增加新的元素

  • 数组.push(元素1, ..., 元素n):一个或多个元素添加到数组的末尾,并返回该数组的新长度。
  • 数组.unshift(元素1, ..., 元素n):一个或多个元素添加到数组的开头,并返回该数组的新长度。

实例:

		let arr = [0, 1, 2, 3, 4]
		let newLength = arr.push(5)
		document.write(arr)			// 0,1,2,3,4,5

(2)数组删除元素

  • 数组.pop():从数组中删除最后一个元素,并返回删除元素的值。
  • 数组.shift():从数组中删除第一个元素,并返回删除元素的值。
  • 数组.splice(起始位置, 删除个数):删除指定元素,并返回删除元素的值。

实例:

		let arr = [0, 1, 2, 3, 4]
		let ele = arr.pop()
		document.write(arr)			// 0,1,2,3
		arr.splice(2, 2)
		document.write(arr)			// 0,1

3、冒泡排序

实例:

        let arr = [3, 5, 2, 0, 1], temp
        for (let i = 0; i < arr.length - 1; i++) {
            for (let j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j+1]) {
                    temp = arr[j] 
                    arr[j] = arr[j+1]
                    arr[j+1] = temp
                }
            }
        }
        document.write(arr)				// 0,1,2,3,5
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值