运算符 分支语句 while循环

140 阅读3分钟

运算符 分支语句 while循环

  1. 算术运算符

    +:求和   -:求差   *:求积   /:求商   %:取模
    复制代码
    
  2. 计算圆形面积

    需求:对话框中输入圆的半径,算出圆的面积并显示到页面
    let r = prompt('请输入圆的半径:')
    document.write(`您输入的圆的半径为${r},计算结果为${3.14 * r *r}`)
    复制代码
    
  3. 赋值运算符

    +=,-=, *=, /=, %=
    ①  let num = 1
       num = num + 1
       console.log(num)       //2
    ②  let num = 1
       num += 1      相当于 num = num + 1
       console.log(num)       //2
    复制代码
    
  4. 一元运算符

       例:正负号  +10 和 -10
       
       例:
            let i = 1
            console.log(i++ + ++i + i)
            //           1  +  3    3
            //     i:    2     3    3
            // console.log(++i + 2);    //4
            // console.log(i++ + 2);     //3
            // console.log(i++ + 4);     //5
    
     // console.log(i++ + i++ + ++i);  //7
             //      1  +  2  +  4
             // i:   2     3     4
     // console.log(++i + i++ + ++i);    //8
             //      2  +  2  +  4   
             // i:   2     3     4
     // console.log(i++ + ++i + i++);   // 7
             //      1  +  2  +  4  
             // i:   1     3     4
          
    复制代码
    
  5. 比较运算符

  >=:左边是否大于或等于右边     <=:右边是否小于或等于右边
  ==:左右两边是否相等     ===:左右两边是否类型和值都相等 
  !==:左右两边是否不全等 
  NaN不等于任何值,包括它本身
  =代表赋值运算符 =左侧必须是一个容器
  ==和!= 只判断数值 不匹配类型 不是特别的严谨
  例如:5=='5' 返回结果是true的情况
  在开发中一般是使用===和!==
  因为===不仅可以匹配数值还可以匹配数据类型
  例如:5==='5' 返回结果是false 5===5 返回结果是true
复制代码
  1. 逻辑运算符

image.png 【注意】NaN,unfinted,null,0的布尔类型都为false image.png 【注意】运算符优先级:先*/%后+-,有括号先算括号里面的先&&后||

image.png 7. 判断一个数是否整除案例

        let num = +prompt('请输入一个数字:')
        console.log(num);
        console.log(num % 4 === 0 && num % 100 !== 0);
复制代码
  1. 分支语句

image.png

        if(score >= 700){
            alert('恭喜你考入黑马程序员')
        }else
            alert('很遗憾,继续加油')
复制代码
  1. 双分支语句

image.png

       求闰年平年
       能被4整除并且不能被100整除
       或者
       能被400整除的年份是闰年,否则都是平年
       let year = prompt('输入年份')
       if(year % 4 === 0 && year % 100 !==0 || year % 400 ===0){
           alert(`今年是闰年`)
       }else{
           alert(`今年是平年`)
       }
复制代码
        已知用户工资10000
        用户输入工龄
        如果工龄大于1年,奖金+2000 并输出工资最终金额,
        否则输出 您本年无奖金。
       let gz = 10000
       let age = prompt('请输入您的工龄')
       if(age > 1){
           alert(`'您的奖金加2000,最终所得为'${gz+2000}`);
       }else{
           alert(`您本年无奖金`)
       }
复制代码
        分时问候案例
        // 1. 用户输入时间 等我们学完api 自动获取时间
        // 实现 12点前提示上午好 18点前提示下午好 20点前提示晚上好
        let time = prompt('请输入现在时间')
        if(time < 12){
            alert('上午好')
        }else if(time<18){
            alert('下午好')
        }else if(time<20){
            alert('晚上好')
        }else{
            alert(`有误`)
        }
复制代码
  1. 三元运算符

image.png

        // 条件 ? 满足条件执行的代码 : 不满足条件执行的代码
        let num1 = +prompt('第一个数')
        let num2 = +prompt('第二个数')
        num1 > num2 ? alert(`${num1}大于${num2}`) : alert(`${num1}小于${num2}`)
复制代码
    数字补0案例
     let num = +prompt('请输入一个数字')
     document.write(num>=10 ? num : '0' + num)
复制代码
  1. switch语句

image.png 例如:简单计算器

        let num1 = +prompt('请输入第一个数字')
        let num2 = +prompt('请输入第二个数字')
        let op = prompt('请输入运算符')
        switch (op) {
            case '+': document.write(`第一个数${num1}第二个数${num2}运算符为${op}和为${num1 + num2}`)
                break;
            case '-': document.write(`第一个数${num1}第二个数${num2}运算符为${op}和为${num1 - num2}`)
                break;
            case '*': document.write(`第一个数${num1}第二个数${num2}运算符为${op}和为${num1 * num2}`)
                break;
            case '/': document.write(`第一个数${num1}第二个数${num2}运算符为${op}和为${num1 / num2}`)
                break;
            default:
                document.write(`您输入的值有误`)
                break;
        }
复制代码
  1. while循环

image.png image.png

     循环必须有3要素 
          1. 变量的起始值
          2. 循环条件
          3. 变量变化
        // let i = 1
        // while (i <= 10) {
        //     document.write(`月薪过万<br>`)
        //     i++
        // }
        let i=1
        while (i<=5) {
            console.log(`月薪过${i}万`);
            i++
        }
复制代码
  1. while循环案例
        // 1. 输出 1~100个数字
        let i = 0
        while (i < 100) {
            i++
            document.write(i + '\t')
        }
        
        // 2. 计算1~100 的累加和  1+2+3+.. + 100   = 5050
        let i = 1
        let sum = 0
        while (i <= 100) {
            sum += i
            i++
        }
        document.write(sum)

        // 3. 求 1~100 之间的偶数累加和  2550
        let i=1
        let sum=0
        while (i<=100) {
            if(i%2===0)
            sum+=i
            i++
        }
        document.write(sum)

        // 4. 你爱我吗案例
        // 页面弹出对话框,'你爱我吗',如果输入'爱',则结束,否则一直弹出对话框
        let love =prompt('你爱我吗?')
        while (love !=='爱') {
            love =prompt('你爱我吗?')
        }
        document.write('我也是')

复制代码
  1. 综合案例
            1. 由于操作提示是一直弹出的,所以prompt 应该写在循环体里面
            2. 根据用户输入不同的数字,从而实现不同的操作逻辑,所以应该用switch case 分支语句
            3. 由于4是退出,所以可以得知循环条件
            4. 取款即为减法操作 存款即为加法操作 查看余额为输出操作
       // 用户总余额
       let money = 0
       //弹出输入框提示用户输入要操作的步骤
       let op = 0
       while (op !== 4) {
               
                  op = +prompt('请输入您的操作  1.取款  2.存款  3.查看余额  4.退出')
       switch (op) {
                //取款
           case 1:  let qukuan = +prompt('请输入您要取款的金额')
                    money -= qukuan          //提示用户总余额还剩多少
                    alert(`您的余额还剩余${money}`)    //弹出用户的剩余余额
               break;

                //存款
           case 2:  let cunkuan = +prompt('请输入您要存款的金额')
                    money += cunkuan          //提示用户总余额还剩多少
                    alert(`您的余额还剩余${money}`)    //弹出用户的剩余余额
               break;
               
                //查看余额
           case 3:  
                    alert(`您的余额还剩余${money}`)    //弹出用户的剩余余额
               break;
           case 4:
               break
           default:
                   alert(`请输入正确的操作`)
               break;
       }
       }