在日常生活中,我们需要根据很多条件来左右行为。比如有二十元零花钱就去买个冰淇淋,有二十万存款就去买车。

在程序中对条件进行判断,根据判断结果去执行不同的行为语句就被称为条件语句。

if 语句

if 语句就是最常用的条件语句,它的语法如下。

if (condition) {
    code
}
  • condition:判断条件,必须是一个布尔值。
  • code:boolean 值为 true 的情况下将会执行的代码块。

下例中 have20yuantrue ,因此代码块被执行。

$$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

不推荐省略掉大括号,这会使代码可读性变差。

$$


练习

  1. 疫情之下,政府发放了失业补助金,需要收集以下信息并作出判断,请你设计一个程序判断填表人是否符合标准。
  • 姓名
  • 年龄大于等于 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 岁")
}

$$

  1. 实现以下的猜数字实例。

$$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("差不多猜对了")
}

$$

  1. 完成以下的计算器实例。 $$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("不支持的操作符")
}

$$