Web:Bit 邏輯
在日常生活裡,不論是寫程式、算數學,法庭攻防,甚至是路上交通、買賣東西或要不要起床,都包含許多「邏輯」的成分,邏輯可做許多的條件和判斷,當滿足了某些條件就會執行某件事,例如聽見鬧鐘響就該起床、看到綠燈才可以行進...等狀況,就是一些簡單的邏輯判斷。
邏輯積木清單
邏輯的積木分別由一個主要的積木「如果...執行...」( 前方有藍色小齒輪的積木 ),搭配九種邏輯判斷的積木 ( 判斷式、邏輯運算子、數字型態、空值、包含值、真假值...等 )。
邏輯判斷
「邏輯判斷」積木預設有兩種型態的組裝「缺口」,在上方比較小的是「判斷條件」,下方比較大的是「執行內容」,代表著如果情況滿足判斷條件 ( 判斷回傳為「真」或「ture」 ),就會執行對應的內容。
點選左上方的藍色小齒輪,可以新增邏輯判斷的條件,點一下可以打開,再點一下可以關閉。
邏輯判斷條件有三種:「如果」一定是在第一層,「否則如果」位在中間,「否則」一定在最後,「否則」的判斷條件表示當「如果」和「否則如果」的條件都沒有滿足,就會執行「否則」的內容。
如果只有兩個條件,例如非 A 即 B,就可以單純使用「如果」和「否則」就可以,甚至可以不使用「否則」,這樣在條件外就不會進行任何動作。
判斷條件式
判斷條件式主要會放在邏輯的「判斷條件」缺口內,提供不同情境的邏輯判斷,判斷的條件主要分為:等於 (=)、不等於 (≠)、小於 (<)、小於等於 (≦)、大於 (>)、大於等於 (≧)。
使用的方式只要把判斷條件的積木,放到判斷條件的缺口內即可。
舉例來說,可以先新增一個變數 a 為 0 到 100 之間的隨機整數,並讓綠色小怪獸講出數字,接著用邏輯判斷,如果變數 a 大於 60 ( 回傳判斷為「true」 ),就讓紅色怪獸講「及格」,否則就講「不及格」,執行程式後就能看到對應的結果。
邏輯運算子
「邏輯運算子」積木為邏輯判斷提供了更彈性的判斷條件,當中包含了「且」與「或」,如果使用「且」,在兩端判斷的條件空格必須都滿足時,才會執行動作,如果使用「或」,只要其中一個條件空格滿足就會執行動作。
通常當邏輯判斷裡出現「如果否則」的時候,就會用到邏輯運算子,而邏輯運算子常常和判斷條件的積木搭配使用。( 有時也會遇到只有「否則、如果」搭配邏輯運算子的情況 )
以剛剛的例子來說,可以增加到四個判斷條件,分別是 0、1~59、60~99 和 100,當判斷條件成立時,就會讓小怪獸說出數字以及對應的文字。
判斷數字型態
「判斷數字型態」積木可以幫助我們快速判斷奇數、偶數、整數、數字有小數點、文字或陣列。
用法上只要直接放入判斷條件的缺口內即可。
例如我們可以設定變數 a 為兩個隨機數相除,再透過小怪獸講出整數或小數。( 除法的積木使用了「多行輸入」,可以在積木上按右鍵選擇多行輸入,教學參考:程式積木小技巧 )
判斷空值
「判斷空值」積木主要是針對和「陣列」積木搭配,如果是空值回傳 true,否則回傳 false。
會產生空值有幾種情況:「無文字、數字 0、空陣列、空值、false ( 假 )、沒有值的變數」,如果判斷這幾種情況是否為空,就會回傳 true。
判斷是否包含文字
「判斷是否包含文字」積木可以檢查某段文字內,是否包含或不包含了指定的文字或文字段落。
舉例來說,如果檢查「你是我的小呀小蘋果」裡面有包含「找到小蘋果了」,綠色怪獸就會說「小蘋果」,反之如果是「小檸檬」,紅色怪獸就會說「沒有小檸檬」。
非
「非」積木就如字面一樣,表示「不是什麼」,通常會和「真/假」或「空值」的積木搭配使用。
如果把積木接在「非」的積木後面,狀態就會相反過來,例如空就會變成非空、真就會變假,假就會變真,依此類推。
真/假
「真/假」積木主要表示 ture ( 真 ) 與 false ( 假 ) 兩個值,目的在讓判斷的時候在數字、文字之外,多一些判斷的條件,同時也可以將 ture 和 false 提交給變數,在否些情境下也相當好用。
空
在寫程式的時候,有時候會遇到某個變數或是某個數值變成空值 ( null ),這時就可以使用空值的積木判斷,用法和「真/假」的用法類似。
三元邏輯運算子
「三元邏輯運算子」積木是針對只有「兩種條件」,並針對根據條件傳回「兩個運算式」的其中一個。
如果用上面提到的及格與不及格的例子,因為只有兩種條件,就可以透過三元邏輯運算子來輕鬆實現,且還可以使用比較少的積木完成同樣的結果。
聯絡我們
如果對於 Webduino 產品有興趣,歡迎透過下列方式購買:
個人線上購買:https://store.webduino.io/ ( 支援信用卡、超商取貨付款 )
企業&學校採購:來信 service@webduino.io 或來電 07-3388511。
如果對於這篇教學有任何問題或建議,歡迎透過下列方式聯繫我們:
Email:service@webduino.io
Facebook 粉絲團:https://www.facebook.com/webduino/
Facebook 技術討論社團:https://www.facebook.com/groups/webduino/