昨天提到了布林值這個東西,因此今天就順便說明一下if這個東西吧。
程式並非都會是一條直線到底的大馬路,有時候是會需要根據情況而採用適當的分支路線的,這種就是條件控制
JavaScript使用關鍵字if
來建立條件控制:
const age = 20
if(age >= 18){
console.log("已成年")
}
一般情況下,我們不會只寫某個條件成立要做什麼事情,沒有成立時的情況也需要處理
const age = 20
if(age >= 18){
console.log("已成年")
}
else{
console.log("未成年")
}
也能透過 elseif
處理不同條件成立時的處理方式
const age = 20
if(age >= 18){
console.log("已成年")
}
else if (age >= 12 && age < 18){
console.log("青少年");}
else{
console.log("未成年")
}
那如果今天情況太多的話該怎麼辦? 我難道要一直加上else if嗎?
這時候我們有另外一個switch
方法可以寫,使用switch加上要判斷的關鍵字並且給一個大括號{},裡面使用case並放置各種不同的條件,並記得在每個case結束後放上break。
let gender = 1;
switch(gender){
case 1:
console.log("男");
break;
case 2:
console.log("女");
break;
default:
console.log("不想說");
}
// 男
如果沒有寫上break的話,程式就會連下面的情況接著做下去,例如:
let gender = 1;
switch(gender){
case 1:
console.log("男");
case 2:
console.log("女");
break;
default:
console.log("不想說");
}
// 男
// 女
當今天只有成立跟不成立兩個情況的時候,也就是只有if跟else而沒有elseif這個條件要處理,我們能夠使用三元運算子簡潔的表達成立與不成立時會做什麼事情
age >=18? console.log("成年人") : console.log("未成年")
第一個 age >=18?
代表我要判斷這個條件有沒有成立
第二個:
左邊 console.log("成年人")
表示age >=18成立時程式要執行什麼
第三個:
右邊 console.log("未成年")
表示age >=18沒有成立時要怎麼處理
那麼關於條件控制,主要分成上述這幾種寫法,有時候我反而認為比較困難的是去尋找條件的判斷而不是if該怎麼寫。
例如說如果要判斷某年是不是閏年,大家可以去wiki看一下閏年的判斷方式。
簡單來說如果被4整除,或者是如果不能被4整除的話,要必須被100整除而且不能被400整除就會是閏年。
function is_leap_year(y) {
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
return true;
} else {
return false;
}
}
console.log(is_leap_year(1998)); // false
console.log(is_leap_year(2000)); // true
console.log(is_leap_year(2100)); // false
那今天的部分就到這邊了,感謝各位觀看。
https://full-gerbil-2e6.notion.site/if-f519335631fa48cc92adcca83f5414ff?pvs=4