当条件成立的时候会执行 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
,情境范例如下:
小华他的习惯是:
- 如果没有下雨,就不会带雨具
- 如果下毛毛雨,他会带轻便雨衣
- 假使下普通的雨,他会带折伞
- 如果台风天豪雨,他会带长伞
let todayWeater = "毛毛雨";
if (todayWeater == "毛毛雨") {
console.log("小华穿轻便雨衣");
}else if (todayWeater == "普通的雨") {
console.log("小华会带折伞");
}else if (todayWeater == "台风天豪雨") {
console.log("小华会带长伞");
}
else {
console.log("就不会带雨具");
}
if
、else
只能有一个,else if
可以有好几组。
这个模式则是当 if 的条件里面又必须有另一个条件的时候会使用到,语意上比较类似「如果他今天.....然後如果他又.....」,最後会呈现一个曹状结构,来看范例:
腰围指数测量
男生腰围大於 90 为过胖
女生腰围大於 80 为过胖
- 判断是男生还是女生
- 判断男生是否超过 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 的熟悉度。
课程目标 课程前半段主要让学员建立Angular开发框架相关基本观念,并透过Angular CLI建...
使用 Heroku 部署机器学习 API 今日学习目标 动手部署自己的机器学习 API 使用 Her...
最坏情况为,BFPRT演算法 在由随机数决定阵列的分割的情况下,我们如何避免产生出最差情况(虽然出现...
我以前最常用的接案网叫做爱苏活,当年不像现在有这麽多免费的接案社团,大部分都是要付年费才能取得发案者...
Synology DS920+nas网路储存设备 是一款适合家庭使用的 4 盘位 NAS。除了拥有4...