# 第二週共筆筆記 - <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 又怎樣?只要是用自己邏輯寫出來的,就是好做法 > 程式是發展出來的