---
# System prepended metadata

title: 第二週共筆筆記 - <br> 10/7 邏輯判斷之術
tags: [週五正課篇, 2022JS直播班, 六角學院]

---

# 第二週共筆筆記 - <br> 10/7 邏輯判斷之術
###### tags: `週五正課篇`、`六角學院`、`2022JS直播班`

### 共筆簽到區
Barret

### 正課開始！~~~~
> 寫程式沒有正確答案，要符合邏輯把目標寫出來

#### 知識點：比較運算子
```javascript
//布林 true、false

3>2
//true

2<1
//false

"hello" == "hello"
//true

2>=2
//true

3 == 3
//true

3 == "3"
// true

3 === "3"
//false

4 != "3"
//true

3 !== "3"
//true

```

#### 複習
Q`:`請問 3 > 2
有幾個 變數、型別、記憶體空間
<!-- Ans: 0.2.3 -->
補充：沒有變數指向，所以過一段時間後，就會清空記憶體空間

#### 這麼多等於要幹嘛
一個等於 = 賦予
兩個等於 == 比較
三個等於 === 嚴謹比較
* 建議使用 三個等於，避免 兩個等於 自動轉型

#### 知識點：邏輯運算子
```javascript
// && 、 || 

1 == 1
// true

1 == 1 && 2==2 && 4==3
//false

1 == 1 && 2==2 && 3==3
// true

4 == 1 || 3==2 || 4==3
// false

```
> 範例思考
百貨公司舉辦來店禮，贈禮條件都要符合
條件一  必須是VIP
條件二  消費滿500

```javascript!
let price = 300;
let isVip = true;
let hasGift = price >= 500 && isVip == true;
console.log(hasGift);

// 寫法比較
// isVip == true; --> 一眼可以看出他就是布林值
// isVip ;   --> 這樣寫也可以，但是要把變數名稱寫清楚。才能一眼判定是否為布林值。
```
### if、else if、else
#### 知識點：if (假如、如果、是否）
```javascript!
if (2>1){
    console.log("程式碼會跑");
}
// if(這裡面回傳一定要是 true 或 false )
// 所以 (true) 也會跑裡面的程式，沒有判斷直接強制執行
console.log("程式碼結束");
```
> 以上以下 要等於，超過未滿 沒等於

> 洧杰是一個愛減肥的人士
> 170/69
> 如果超過 60kg 以上就不吃飯，反之就吃飯
```javascript!
let kg = 69;
if(kg >= 60){
    console.log("不吃飯");
}else(
    console.log("吃飯");
)
```


> 小美她常不知道出門要不要帶雨傘，我們來寫程式幫助她吧！
> 晴天不帶任何東西
> 颱風天，拿大傘
> 小毛毛雨，拿折傘
> 都沒有不確定

```javascript!
let todayWeather = "晴天";
if(todayWeather === "晴天"){
    console.log("不帶任何東西");
}else if (todayWeather === "颱風天"){
    console.log("拿大雨傘");
}else if (todayWeather === "毛毛雨"){
    console.log("拿折傘");
}else{
    console.log("我也不知道要帶什麼了！你想清楚要不要出門吧~");
}
```
> 一定要有一個 if 、 多個 else if、else 可有可無

#### 知識點：流程圖
[流程圖](https://zh.wikipedia.org/wiki/%E6%B5%81%E7%A8%8B%E5%9B%BE)
![](https://i.imgur.com/8srWdXx.png)

圓角矩形 -> 程式開始 / 結束
長方形  -> 程式
線條   ->  流程
菱形    -> if 決策判斷


#### 程式碼拆解

>練習一
小華考了國英數，國文考 10 分、英文考 60 分、數學考 100 分，他想起父親告訴他，如果他總分有達 240 分，就帶他去遊樂園，快來幫忙算算他是否有達到門檻

```javascript!
// 1. 設定程式目標：是否達到門檻去遊樂園
// 2. 初始化資料狀態
// 小華考了國英數
// 國文考 10 分
// 英文考 60 分
// 數學考 100 分
// 他想起父親告訴他，如果他總分有達 240 分，就帶他去遊樂園
// 快來幫忙算算他是否有達到門檻

let chScore = 0;
let enScore = 0;
let mathScore = 0;
chScore = 10;
enScore = 60;
mathScore = 100;
let total = 0;
total = chScore + enScore + mathScore;
if(total >= 240){
    console.log("去遊樂園玩");
}else{
    console.log("沒辦法去")
}
```

![](https://i.imgur.com/AQX0Mhb.png)


>練習二
小美為了讓自己快樂，內心有個快樂指數，範圍是 0~10，10 是最快樂。當小美指數在 8 (含)以上時，會選擇宅在家，指數在 5~7 時會選擇去血拼，在 4(含) 以下時，會選擇跟人去唱卡拉ok。小美今天的快樂指數為 6，那麼他會想做什麼事呢？

```javascript!
// 定義目標：小美今天的心情，影響小美想做什麼事
// 初始值：
// 小美為了讓自己快樂
// 內心有個快樂指數，範圍是 0~10，10 是最快樂

// 當小美指數在 8 (含)以上時，會選擇宅在家
// 指數在 5~7 時會選擇去血拼
// 在 4(含) 以下時，會選擇跟人去唱卡拉ok

// 小美今天的快樂指數為 6，那麼他會想做什麼事呢？

let todayScore = 6;

// if(todayScore >= 8){
//     console.log("宅在家");
// }else if(todayScore >=5){
//     console.log("去血拼");
// }else{
//     console.log("跟朋友去唱歌");
// }

if(todayScore >= 8){
    console.log("宅在家");
}else if(todayScore >= 5 && todayScore <= 7){
    console.log("血拼");
}else if(todayScore <= 4 ){
    console.log("唱歌");
}

```
![](https://i.imgur.com/ZLULl01.png)
![](https://i.imgur.com/oZ4GyW0.png)
![](https://i.imgur.com/5DRboMk.png)

> 不要力求精簡，力求可讀性
> 只要有辦法，用你的邏輯寫出程式，那就是厲害就是進步

>練習三
小明去參加歌手牽手會，到門口時，守衛問他說，有沒有帶入場券，小明亮出入場券後進入了會場，隨後想排隊跟歌手牽手時，又被第二個守衛擋住，問他說，他有沒有買 5000 張以上 DVD？但因為小明只有買 3000 張 DVD，小明只好忍痛離開，並下定決心要將這過程記錄下來，下次一定要握到手！


```javascript!
// 小明去參加歌手牽手會，到門口時，守衛問他說
// 1.有沒有帶入場券，
// 問他說，他有沒有買 5000 張以上 DVD？
// 但因為小明只有買 3000 張 DVD
// 小明只好忍痛離開，並下定決心要將這過程記錄下來，下次一定要握到手！

// 程式目的：可以握到香香手的條件

let hasTicket = true;
let dvdNum = 3000;
if(hasTicket == true){
    console.log("進入會場");
    if(dvdNum >= 5000){
        console.log("成功握到手囉~~~");
    }
}
```
![](https://i.imgur.com/sjWJXnW.png)

> 走出自己的風格

> 寫程式沒有最佳解，唯有滿足老闆需求，早點下班才是正確的

> 寫爛 Code 又怎樣？只要是用自己邏輯寫出來的，就是好做法

> 程式是發展出來的
