JavaScript Day 9. if、else if、if包if

if

当条件成立的时候会执行 if 陈述式里的程序,而不成立时则执行另外一个陈述式。if 单从字面上来看,他有「如果」的意思,以 JavaScript 来说,在使用上也很符合「如果」的语意,以下我直接给予一个简单日常的情境:

小华他想出门,但他不确定自己的钱包有没有钱,於是他想打开钱包看看还有多少钱。
如果他有 100 元以上,就吃 80 元的牛肉面;如果没有 100 元,那就不吃了。
最後小华想计算自己还剩下多少钱。

let wellet = 0;
wallet += 130;
if(wellet >= 100) {
	wellet -= 80;
} else {
	wellet -= 0;
}
console.log(`钱包还剩下${wellet}`); // 50

从上面范例可以看到 if 在 JavaScript 里面的定位,也是很贴近语意的使用方式。

当 () 为 true 的时候,才执行大括号里面的语句,如果是 false 则跳过整个 if 区块。

else if

当情境上有多个条件,需要呈现多种判断结果的时候,可以使用 else if,情境范例如下:

小华他的习惯是:

  1. 如果没有下雨,就不会带雨具
  2. 如果下毛毛雨,他会带轻便雨衣
  3. 假使下普通的雨,他会带折伞
  4. 如果台风天豪雨,他会带长伞
let todayWeater = "毛毛雨";

if (todayWeater == "毛毛雨") {
    console.log("小华穿轻便雨衣");
}else if (todayWeater == "普通的雨") {
    console.log("小华会带折伞");
}else if (todayWeater == "台风天豪雨") {
    console.log("小华会带长伞");
}
else {
    console.log("就不会带雨具");
}

ifelse 只能有一个,else if 可以有好几组。

if 包 if

这个模式则是当 if 的条件里面又必须有另一个条件的时候会使用到,语意上比较类似「如果他今天.....然後如果他又.....」,最後会呈现一个曹状结构,来看范例:

腰围指数测量
男生腰围大於 90 为过胖
女生腰围大於 80 为过胖

  1. 判断是男生还是女生
  2. 判断男生是否超过 90
    判断女生是否超过 80
let sex = "female";
let cm = 70;

if(sex=="female") {
    console.log("女生");
    if(cm>=80) {
        console.log("体型肥胖");
    }else {
        console.log("体型正常");
    }
}else if (sex=="male"){
    console.log("男生");
}else {
    console.log("无法解读");
}

以上范例可以看到必须判断性别後,再次判断体重是否在正常值,因此写的方式也与上面两种不太一样了。

下面再给一个范例,里面有的条件又更复杂了:

1.小法斗每天固定吃 2 餐
2.法斗标准体重为 12KG,所以只要体重超过 12KG ,一天就只吃 1 餐
3.体重低於 12KG 就恢复吃两餐
4.体重低於 10KG 就吃 3 餐

let dogEatNum = 2;
let dogWeight = 12;

if(dogWeight >= 13) {
    console.log("一天只吃一餐");
    if(dogWeight >= 15) {
        console.log("就医减重");
    }
}else if(dogWeight <= 12 && dogWeight >= 10) {
    console.log("正常吃两餐");
}else if(dogWeight <= 10 && dogWeight >= 8) {
    console.log("一天吃三餐,增加肌肉量");
}else {
    console.log("无法判定");
}

透过 if 就可以替程序做出一些小小的判断,其实是一件很有趣的事,在不停的自己塑造情境并运行的过程,也是不断加深自己对 if 的熟悉度。


<<:  Day 4 资料单向绑定

>>:  予焦啦!BSS 初始化

【课程推荐】2021/5/8~5/9 Angular前端开发框架入门班

课程目标 课程前半段主要让学员建立Angular开发框架相关基本观念,并透过Angular CLI建...

[Day 26] 使用Heroku部署机器学习API

使用 Heroku 部署机器学习 API 今日学习目标 动手部署自己的机器学习 API 使用 Her...

Day-18 BFPRT演算法

最坏情况为,BFPRT演算法 在由随机数决定阵列的分割的情况下,我们如何避免产生出最差情况(虽然出现...

Day3 - 接案网不是拿来接案的

我以前最常用的接案网叫做爱苏活,当年不像现在有这麽多免费的接案社团,大部分都是要付年费才能取得发案者...

群辉ds920+nas网路储存设备简易开箱,满足家庭影音需求

Synology DS920+nas网路储存设备 是一款适合家庭使用的 4 盘位 NAS。除了拥有4...