JavaScript 基础
Document
运算符
深入数据和类型
函数进阶
原型、继承
类
浏览器存储
Web API
事件
错误处理
异步编程
网络请求
模块
练习
实例
工具与规范
软件架构模式
设计模式
在日常生活中,我们需要根据很多条件来左右行为。比如有二十元零花钱就去买个冰淇淋,有二十万存款就去买车。
在程序中对条件进行判断,根据判断结果去执行不同的行为语句就被称为条件语句。
if 语句
if 语句就是最常用的条件语句,它的语法如下。
if (condition) {
code
}
- condition:判断条件,必须是一个布尔值。
- code:boolean 值为
true
的情况下将会执行的代码块。
下例中 have20yuan
为 true
,因此代码块被执行。
$$edit$$
$$jsdemo$$
let have20yuan = true
if (have20yuan) {
alert("买个冰淇凌")
}
alert('运行完成')
更多的时候,这个条件的值由用户提供。
$$edit$$
$$jsdemo$$
let have20yuan = confirm("你有20元吗?")
if (have20yuan) {
alert("买个冰淇凌")
}
alert("运行完成")
比较运算符总是返回一个布尔值,它们最常的应用场景就是条件语句之中。
$$edit$$
$$jsdemo$$
let money = 25
if (money >= 20) {
alert("买个冰淇凌")
}
alert("运行完成")
同样的,很多时候可以由用户输入 money
的值。
$$edit$$
$$jsdemo$$
let money = prompt("你有多少钱?")
if (money >= 20) {
alert("买个冰淇凌")
}
alert("运行完成")
else 语句
在 if
代码块后可以接一段 else
语句,在条件不成立的情况下执行。
$$edit$$
$$jsdemo$$
let have20yuan = false
if (have20yuan) {
alert("买个冰淇凌")
} else {
alert("买不起,回家")
}
alert('运行完成')
else if 语句
在 if
代码块之后还可以接多个 else if
语句。
$$edit$$
$$jsdemo$$
let money = prompt("你有多少钱?")
if (money >= 20) {
// 如果 大于等于 20
alert("买个冰淇凌")
} else if (money >= 10) {
// 否则如果 大于等于 10
alert("买块巧克力")
} else if (money >= 5) {
// 否则如果 大于等于 5
alert("买块糖果")
} else {
// 否则
alert("买不起,回家")
}
alert("运行完成")
省略大括号
只有一行语句时可以省略掉大括号。
$$edit$$
$$jsdemo$$
let have20yuan = true
if (have20yuan) alert("买个冰淇凌")
$$tip
不推荐省略掉大括号,这会使代码可读性变差。
$$
练习
- 疫情之下,政府发放了失业补助金,需要收集以下信息并作出判断,请你设计一个程序判断填表人是否符合标准。
- 姓名
- 年龄大于等于 20 岁
- 社保大于等于 12 个月
- 失业时长大于 3 个月
$$demo <button onclick="collect()">申请补助金</button> <script> function collect() { let name = prompt("请输入你的姓名") let age = Number(prompt("请输入你的年龄")) let socialSecurityMonths = Number(prompt("请输入社保时长(月)")) let unemployedMonths = Number(prompt("请输入失业时长(月)"))
if (age >= 20) {
if (socialSecurityMonths >= 12) {
if (unemployedMonths > 3) {
alert(`${name}的社保已经成功发放`)
} else {
alert("失业时长需大于 3 个月")
}
} else {
alert("社保需缴纳至少 12 个月")
}
} else {
alert("年龄至少为 20 岁")
}
}
</script> $$
$$answer
$$edit$$
$$jsdemo$$
let name = prompt("请输入你的姓名")
let age = Number(prompt("请输入你的年龄"))
let socialSecurityMonths = Number(prompt("请输入社保时长(月)"))
let unemployedMonths = Number(prompt("请输入失业时长(月)"))
if (age >= 20) {
if (socialSecurityMonths >= 12) {
if (unemployedMonths > 3) {
alert(`${name}的社保已经成功发放`)
} else {
alert("失业时长需大于 3 个月")
}
} else {
alert("社保需缴纳至少 12 个月")
}
} else {
alert("年龄至少为 20 岁")
}
$$
- 实现以下的猜数字实例。
$$demo <button onclick="tap()">猜数字</button> <script> function tap() { let real = 7 let n = Number(prompt("请猜一个数字"))
if (n - real >= 4) {
alert("你猜得太大了")
} else if (real - n >= 4) {
alert("你猜得太小了")
} else if (n === real) {
alert("你猜对了")
} else {
alert("差不多猜对了")
}
}
</script> $$
$$answer
$$jsdemo$$
$$edit$$
let real = 7
let n = Number(prompt("请猜一个数字"))
if (n - real >= 4) {
alert("你猜得太大了")
} else if (real - n >= 4) {
alert("你猜得太小了")
} else if (n === real) {
alert("你猜对了")
} else {
alert("差不多猜对了")
}
$$
- 完成以下的计算器实例。 $$demo <button onclick="calc()">简易计算器</button>
<script> function calc() { let n1 = Number(prompt("输入第一个数")) let op = prompt("输入操作符") let n2 = Number(prompt("输入第二个数"))
if (op === "+") {
alert(`结果是:${n1 + n2}`)
} else if (op === "-") {
alert(`结果是:${n1 - n2}`)
} else if (op === "*") {
alert(`结果是:${n1 * n2}`)
} else if (op === "/") {
alert(`结果是:${n1 / n2}`)
} else {
alert("不支持的操作符")
}
}
</script> $$
$$answer
$$jsdemo$$
$$edit$$
let n1 = Number(prompt("输入第一个数"))
let op = prompt("输入操作符")
let n2 = Number(prompt("输入第二个数"))
if (op === "+") {
alert(`结果是:${n1 + n2}`)
} else if (op === "-") {
alert(`结果是:${n1 - n2}`)
} else if (op === "*") {
alert(`结果是:${n1 * n2}`)
} else if (op === "/") {
alert(`结果是:${n1 / n2}`)
} else {
alert("不支持的操作符")
}
$$