流程控制(pink老师课程笔记)

运算符

赋值—— = += -= *= /=

将等号右边的值赋予给左边, 要求左边必须是一个容器

// 赋值运算符
        let num = 4
        num += 5
        console.log(num)

一元——正负号

// 一元运算符
        let i = 1
        // i++
        ++i
        console.log(i)

自增、自减(让变量+1或-1,常用于计数

比较 > < >= <= == ===(类型和值均相等) !=

 // 比较运算符
        console.log(3 >= 5)
        console.log(3 >= 3)
        console.log(2 == '2')//true
        console.log(2 === '2')//false
        console.log('a' < 'b')//true
        console.log('aa' < 'ab')
  • 比较运算符含有隐式转换(如果是数字和"其他值"的比较 则其他值会自动转换成数字去比较)
  • 字符串比较使用ASCII值
  • 涉及到"NAN"都是false (NaN)
  • 更推荐===

逻辑——与 或 非

// 逻辑运算符(num=9)
        console.log(num > 3 && num < 10)
        console.log(num > 3 && num < 7)
        console.log(num > 3 || num < 7)

        //案例:判断4的倍数,且不是100的倍数
        let num1 = +prompt('请输入数字:')
        alert(num1 % 4 === 0 && num1 % 100 !== 0)

优先级

由高到低:

  1. ( )
  2. ++、 -- 、! —
  3. 先乘除后加减
  4. 大于小于号(大于等于、小于等于)
  5. 等号和不等号(==)
  6. 先&&后||
  7. 赋值(=)
  8. 逗号

表达式

可以被求值的代码,js会将其计算出一个结果

语句

js 整句或命令,js 语句是以分号结束(可以省略)

  1. 语句分类:顺序、分支、循环

if条件语句

单分支

// 单分支
        if (true) {
            console.log('执行语句')
        }
        // 数字0为假
        if (0) {
            console.log('执行语句')
        }
        // string空为假
        if ('') {
            console.log('执行语句')
        }
        if ('zhu') {
            console.log('执行语句')
        }
        if (3) {
            console.log('执行语句')
        }

除了‘0’和字符串为空,所有的数字和字符串均为真

// 单分支案例
        let core = +prompt('请输入高考成绩:')
        if (core > 700) {
            console.log('恭喜考入西安邮电大学')
            alert('恭喜考入西安邮电大学')
        }

双分支

 // 双分支
        let userName = prompt('请输入用户名:')
        let password = +prompt('请输入密码:')
        if (userName === 'zhu' && password === 123456) {
            alert('登陆成功')
        } else {
            alert('登陆失败')
        } 
 // 闰年判断
        let year = +prompt('请输入年份:')
        if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
            console.log('闰年')
            console.log(`${year}是闰年`)
        } else {
            console.log('平年')
        } 

多分支

// 多分枝
        let score = +prompt('请输入成绩:')
        if (score >= 90) {
            console.log(`${score}成绩优秀`)
        } else if (score >= 70) {
            console.log(`${score}成绩良好`)
        } else if (score >= 60) {
            console.log(`${score}成绩及格`)
        } else {
            console.log(`${score}成绩不及格`)
        }

三元运算符

条件 ?满足条件的代码:不满足条件的代码

/* // 三元运算符
        3 < 5 ? alert('真') : alert('假')
        let sum = 3 < 5 ? 3 : 5
        console.log(sum); */
        /* // 输出最大的数
        let num1 = +prompt('请输入第一个数字:')
        let num2 = +prompt('请输入第二个数字:')
        console.log(num1 > num2 ? num1 : num2) */
// 数字补0案例
        let num = +prompt('请输入数字:')
        // console.log(num < 10 ? `0${num}` : num)
        num = num < 10 ? '0' + num : num
        console.log(num); 

一般用于取值

switch

// switch语句
        let num = +prompt('请输入对应的编号:')
        switch (num) {
            case 1:
                console.log('你的选择是1')
                break;
            case 3:
                console.log('你的选择是3')
                break;

            default:
                console.log('没有符合选择的')
                break;
        }

注意格式

// switch简单案例
        let num1 = +prompt('数字一为:')
        let num2 = +prompt('数字二为:')
        let num_ = prompt('算术运算符为:')
        switch (num_) {
            case '+':
                console.log(num1 + num2)
                break
            case '-':
                console.log(`${num1}和${num2}差值为${num1 - num2}`)
                break
            case '*':
                console.log(num1 * num2)
                break
            case '/':
                console.log(num1 / num2)
                break

            default:
                console.log('不符合规范,请重新输入')
                break
        }

while循环语句

满足条件期间,一直执行某代码

三要素:变量起始值、终止条件、变量变化量(自增)

// while 循环
        /* let i = 1
        while (i <= 5) {
            console.log('while循环')
            document.write('循环 <br>')
            i++
        }
        let j = 1
        while (j <= 10) {
            document.write('月薪国王 <br> ')
            j++
        } */
// while 练习
        let i = 1
        let sum = 0
        while (i <= 100) {
            document.write(i + '<br>')
            if (i % 2 !== 0)
                sum += i
            i++
        }
        document.write(sum) 

continue和break

// continue 和 break 
        let i = 1
        while (i <= 5) {
            if (i === 3) {
                i++
                continue
                // break
            }
            document.write(`wy吃了${i}个包子 <br>`)
            i++
        } 

ATM

let money = 100
        while (true) {
            let i = +prompt(`请选择:
            1.存钱
            2.取钱
            3.查看余额
            4.退出`)
            // 4:退出
            if (i === 4) {
                break
            }
            switch (i) {
                case 1:
                    let cun = +prompt('请输入存款金额')
                    money += cun
                    break;
                case 2:
                    let qu = +prompt('请输入取款金额')
                    if (qu <= money) {
                        alert(`成功取款${qu}元`)
                        money -= qu
                    } else {
                        alert('超出范围')
                    }
                    break
                case 3:
                    alert(`您所查询的余额为${money}元`)
                    break
                default:
                    break;
            }
        }
posted @ 2023-11-10 09:47  齐嘉树  阅读(5)  评论(0编辑  收藏  举报