iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

昨天提到了布林值這個東西,因此今天就順便說明一下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("未成年")
}

switch

那如果今天情況太多的話該怎麼辦? 我難道要一直加上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這個條件要處理,我們能夠使用三元運算子簡潔的表達成立與不成立時會做什麼事情

  1. 使用問號跟冒號隔開, 因此有三個(因此為三元運算子)
  2. 成立的話作左邊的事情, 不成立作右邊的事情
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


上一篇
[Day2] Hello World
下一篇
[Day4] 迴圈
系列文
30天從零到有,帶你進入程式的世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言