js 流程控制 if while语句 知识点+案例

260 阅读3分钟

1 运算符

1.1 赋值运算符

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

加法赋值运算

赋值运算符 +=

  • 其他赋值运算符 -= *= /= %=
let num = 1
num = num + 1
------
let num = 1
num += 1 
// 表示自动赋值加 1
num += 5
// 表示自动赋值加 5

1.2 一元运算符

自增运算符

  • 前置自增 ++变量
  • 后置自增 变量++

单独运算时 都是给变量加1

// 前++ 在参与运算时分两步 第一步先给自己加1 第二步再来参与运算
let i = 1
console.log(++i + 1)
// 结果是2+1=3
------
 // 后++ 在参与运算时分两步 第一步先参与运算 第二步再给自己加1
 let i = 1
console.log(i++ + 1)
// 结果是1+1=2

1.3 比较运算符

比较两个数的大小

1. 比较运算符
 >:左边是否大于右边
 <:左边是否小于右边
 >=:左边是否大于或等于右边
 <=:左边是否小于或等于右边
 ==:只会比较左右两边值是否相等
 !=: 左右两边不等于
 ===:全等于 既要判断左右两边的值是否相等,也要比较属性类型是否相同
 !==:左右两边是否不全等,不等于时true,等于是flose
 比较结果为boolean类型,即只会得到 truefalse

2. 对比
 = 赋值,将等号右边的值赋给等号左边的变量
 == 判断,只判断值是否相同
 === 全等,值和类型都相等
!!! 开发中判断是否相等,强烈推荐使用 ===

1.4 逻辑运算符

与 或 非

// 语句运算符
&&  与  并且 一假则假
||  或  或者 一真则真
!  非  取反 真变假,假变真

1.5 运算符的优先级

判断运算执行的顺序

优先级运算符顺序
1小括号()
2一元运算符++ -- !
3算数运算符先 * / !后 + -
4关系运算符> >= < <=
5相等运算符== != === !==
6逻辑运算符先&& 后||
7赋值运算符=
8逗号运算符,

2 语句

程序三大流程控制语句.jpg

2.1 表达式和语句

  • 表达式 表达式是可以被求值的代码,JavaScript 引擎会将其计算出一个结果。
  • 语句 是一段可以执行的代码,不一定有值。 比如:prompt() 可以弹出一个输框,还有 if语句 for 循环语句等。

2.2 分支语句

if 语句

  • 分支:单分支、双分支、多分支
// 单分支 语法
if (条件) {
  满足条件要执行的代码
}
   <!-- 如果不是布尔值会进行隐式转换 -->

// 案例 判断成绩,反馈结果
 // 第一步 准备一个对话框
  const num = prompt('请输入您的高考成绩')
  // 第二步 使用if语句进行判断
  if (num > 700) {
    // 第三步 弹出判断结果
    alert('恭喜您考上程序员大学')
  }

// 双分支 语法
if (条件) {
  满足条件要执行的代码
} else {
  不满足条件要执行的代码
}

// 案例1 登录提示
  const uname = prompt('请输入用户名:')
  const pwd = prompt('请输入密码:')
  if (uname === 'pink' && pwd === '123456') {
    alert('登录成功')
  } else {
    alert('登录失败')
  }
// 案例2 闰年平年?
  const num = prompt('请输入年份')
  if (num % 4 === 0 && num % 100 !== 0 || num % 400 === 0) {
    alert('是闰年')
  } else {
    alert('是平年')
  }


// 多分支 语法
if (条件1) {
  代码1
} else if (条件2) {
  代码2 
} else if (条件3) {
  代码3
} else {
  代码n
}
// 案例 判断成绩 优秀 良好 及格 渣渣
   const num = 20
  if (num > 90) {
    document.write('优秀')
  } else if (num >= 70) {
    document.write('良好')
  } else if (num >= 60) {
    document.write('及格')
  } else {
    document.write('渣渣')
  }

三元运算符(三元表达式)

  • 比 if 双分支更简单的写法,可以使用三元素表达式

语法: 条件 ? 满足条件执行的代码 : 不满足条件执行的代码

// 案例1 利用三元运算法判断两个数字的大小
 const num1 = prompt('请输入第一个数字')
 const num2 = prompt('请输入第二个数字')
 const res = num1 > num2 ? num1 : num2
 console.log(res);
 // 注意:满足条件执行前面的代码,不满足条件执行后面的代码

 // 案例2 数字补0 数字小于10时在前面补0
 const num = prompt('请输入一个数字')
 const res = num < 10 ? '0' + num : num
 console.log(res);
 // 注意:此处用了 字符串拼接 

switch case语句

  • switch case 语句一般用于全等值的判断,不适合用于区间判断
  • 必须与break(打断)关键字一起使用,否则会造成case穿透
// switch 语法
switch (数据) {
    case1:
        代码1
        break
    case2:
        代码2
        break
      default:
        代码n
        break
}

// 案例 简单计算器
// 目标: 使用switch case 实现简单计算器功能
// 第一步 准备三个输入框
// 第二步 根据  + - * / 进行判断
const num1 = +prompt('请输入第一个数字')
const num2 = +prompt('请输入第二个数字')
const fuhao = prompt('请从+ - * / 中选择您要执行的运算')
switch (fuhao) {
  case '+':
    document.write(`您执行的是加法运算,结果是: ${num1 + num2}`)
    break
  case '-':
    document.write(`您执行的是减法运算,结果是: ${num1 - num2}`)
    break
  case '*':
    document.write(`您执行的是乘法运算,结果是: ${num1 * num2}`)
    break
  case '/':
    document.write(`您执行的是除法运算,结果是: ${num1 / num2}`)
    break
}

2.3 循环语句

while 循环语句

能重复执行某段代码

// 语法
while (循环条件) {

  要重复执行的代码(循环体)
}
// 无限循环 (一直循环,不会结束)
while (true) {
  需要循环的代码
}
// !!while 循环三要素
1.变量起始值
2.终止条件(没有终止条件,循环会一直执行,造成死循环)
3.变量变化量(用自增或自减)
// 案例1 i小于等于3时,窗口弹出‘我真帅’,并且循环执行,直到不满足i小于等于3的条件时 结束程序
    let i = 1			// 变量起始值
     while (i <= 3) {	//(终止条件) 
     alert('我真帅')	// 循环体
     i++			// 变量变化量
 }
 // 案例2 页面打印10次‘月薪过万’
     let i = 1
     while (i <= 10) {
     document.write('月薪过万<br>')
     i++
 }

2.4 循环中断

  • break 打断 跳出所有的循环
  • continue 结束本次循环,继续下一次循环

3 综合案例

银行存取款机

案例效果展示

银行存取款机.jpg

    // 不输入4,就一直循环; 输入4 打断循环,退出程序
    let money = 100 // 自定义初始money
    while (true) {
      const num = +prompt(`
      请输入您要执行的操作:
      1.存款
      2.取款
      3.查看余额
      4.退出
      `)
      if (num === 4) {
        alert('欢迎下次光临!')
        break
      } else if (num === 1) {
        const num1 = +prompt('请输入您存入的金额')
        money += num1
        alert(`您已存入${num1}`)
      } else if (num === 2) {
        const num2 = +prompt('请输入您取款的金额')
        money -= num2
        alert(`您已取出${num2},请注意查收`)
      } else if (num === 3) {
        alert(`您的余额为${money}`)
      }
    }

简单计算器

实现简单计算器运算功能

    // 目标: 使用switch case 实现简单计算器功能
    // 第一步 准备三个输入框
    // 第二步 根据+ - * / 进行运算判断
	// 第三步 页面显示计算结果
    const num1 = +prompt('请输入第一个数字')
    const num2 = +prompt('请输入第二个数字')
    const fuhao = prompt('请从+ - * / 中选择您要执行的运算')
    switch (fuhao) {
      case '+':
        document.write(`您执行的是加法运算,结果是: ${num1 + num2}`)
        break
      case '-':
        document.write(`您执行的是减法运算,结果是: ${num1 - num2}`)
        break
      case '*':
        document.write(`您执行的是乘法运算,结果是: ${num1 * num2}`)
        break
      case '/':
        document.write(`您执行的是除法运算,结果是: ${num1 / num2}`)
        break
    }