首页 > 其他分享 >流程控制

流程控制

时间:2023-11-10 09:56:00浏览次数:26  
标签:控制 console log 流程 break num let prompt

运算符

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

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

// 赋值运算符
        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;
            }
        }

标签:控制,console,log,流程,break,num,let,prompt
From: https://www.cnblogs.com/Z2201210269/p/17823422.html

相关文章

  • JVM启动流程和基本结构
    JVM启动流程和基本结构JVM启动流程JVM基本结构详细介绍内存空间作用Java堆(Heap)对于大多数应用来说,Java堆(JavaHeap)是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这......
  • Day03java流程控制
    所有学习内容来自:狂神说javaJava流程控制一、用户交互ScannerScanner对象java提供了这样一个工具类可以获取用户的输入。java.util.Scanner是java5的新特征,可以通过Scanner类来获取用户的输入。基本语法:Scanners=newScanner(System.in)使用next()与nextLine()方法获取......
  • CFS(四)新任务的创建流程
    前言新任务产生接口有clone、fork等系统调用,这些系统调用的都是通过do_fork函数实现。本文主要对do_fork中CFS新任务的调度初始化过程进行了探究,看看一个CFS新任务如何完成调度信息的初始化以及进入就绪队列的。CFS的调度信息初始化long_do_fork(...){ /*任务信息初始化*/......
  • 【单片机】实验2:按下式开关控制小灯
    #include<REGX51.H>#include<intrins.h>//实验目标@萌狼蓝天/**1、SW1开关控制LED发光二极管左移流水2、SW2开关控制发光二极管右移流水3、由按键开关k1控制LED发光二极管奇偶交替闪烁4、由按键开关k2控制LED发光二极管亮灭闪烁*///接口与设备对应关系/* P1 : L......
  • 聊城实用新型专利申请的流程是什么
    聊城实用新型专利申请的流程是什么恒标知产刘经理申请实用新型专利的流程包括以下几个步骤:首先需进行实用性检索,确定专利主题是否已被他人申请或授权;然后撰写专利申请书并提交相关材料;接着进行初审和复审,并可能需要进行答辩;最后,专利被授权后,需要缴纳年费来维持专利权利。实用新型专......
  • espnow-流程篇
    由于老是记不住espnow的流程,写一篇博客记一下:espnow_init这个函数主要是对各个函数进行一个调用,其实没什么好说的(原来是main函数)example_wifi_init 对wifi的一个初始化,进行默认的初始化example_espnow_init这个是重头戏在此处用队列形式传递数据,所以要初始化队列......
  • win版本 mysql5.7 解压安装流程
    win版本mysql5.7解压安装流程https://dev.mysql.com/downloads/mysql/5.7.html#downloads1、添加系统变量变量名:MYSQL_HOME变量值:D:\ProgramData\mysql-5.7.44-winx642、编辑my.inimy.ini[mysqld]basedir=D:\ProgramData\mysql-5.7.44-winx64datadir=D:\ProgramData\mysql-5.7.......
  • btmon获取hci数据流程
    btmon获取hci数据流程背景最近在看蓝牙相关的驱动代码,追到hci接收数据处理函数hci_rx_work()(net/bluetooth/hci_core.c),瞄到下面一段代码:C...while((skb=skb_dequeue(&hdev->rx_q))){/*Sendcopytomonitor*/hci_send_to_monitor(hdev,skb);.........
  • 济南申请发明专利需要哪些流程
    济南申请发明专利需要哪些流程恒标知产刘经理 审批程序包括受理、初审、公布、实审以及授权五个阶段。1、受理阶段:如果符合受理条件,专利局将确定申请日给予申请号并且核实过文件清单后,发出受理通知书,通知申请人。2、初步审查阶段:(1)发明名称一般不得超过25个字,特殊情况,化学领域的发......
  • Oracle之控制文件管理
    一、什么是控制文件?  您可以创建、备份和删除控制文件。  每个Oracle数据库都有一个控制文件,它是一个小的二进制文件,记录数据库的物理结构。控制文件内容包括:数据库名称相关的数据文件和重做日志文件的名称和位置数据库创建的时间戳当前日志序列号检查点信息  每当数据库......