尚未建立名稱
能量:0
我的帳號中心
問 學Bot 任何問題!
首頁&搜尋
最愛&收藏
所有課程
分享資源
帳號設定
關於學呀
線上募款
邏輯的運算
編輯章節
EDU-MD
Google 教室
加至書籤
## 什麼是布林值? ![](https://www.quizony.com/true-or-false-quiz/imageForSharing.jpg) 很多時候,我們建立一個變數,不需要儲存文字或數字,而是單純記憶事情的「是」與「非」,這時候,布林值就有很大的用途。電腦中的布林值,是以一位數學家喬治.布林來命名的;在大部分的環境中,**布林值是一種只能帶有「是」或「非」的資料型態**。 # 程式中的布林值 ## 帶著布林值的變數 ::: suggestion 這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 JavaScript 等程式語言相近,但並非任何真實程式語言。請專注於章節中的概念部分,而非語法部分。 ::: 大部分的程式語言中,`true` 代表「是」,而 `false` 代表「非」,但請**注意不同程式語言中 `true`和 `false`的大小寫變化**。現在讓我們建立一個變數: ``` a = true; ``` 現在變數 `a` 中,帶有 `true` 的值。如同前幾章提到的其他資料型態,我們可以使用 `a` 這個變數。下列程式碼將在螢幕上印出 `true` 的值。 ``` print(a); ``` ## 「 1 」還是「 0 」? 我們一定有聽過,電腦的語言是一堆的「 1 」和「 0 」。你可能會好奇為甚麼如此,但那已經超出我們的範圍了。不過,如果說布林值也是由「 1 」和「 0 」構成的,你相信嗎?再一些很低階的程式語言中,我們可以直接控制電腦的記憶體運作,此時如果我們需要儲存布林值的「是」與「非」,最不複雜而且節省空間的方法就是把「是」與「非」變成「 1 」跟「 0 」。 我們**將`true`定義為「 1 」,並將`false`定義為「 0 」**。當看到 `true` 或 `false` 的值時,請記得它們背後其實是「 1 」與「 0 」。 # 布林值的運算 ![](https://www.lotame.com/wp-content/uploads/2017/01/booloeanlogic.jpeg) ## 「&&」運算 就像數字的計算,布林值也有專屬的計算符號可以計算。假設我們知道「A喜歡吃蘋果」,也知道「B喜歡吃蘋果」,並將這兩件事實變作布林值儲存在「`A_likes_apples 」和「 B_likes_apples 」兩個變數中: ``` A_likes_apples = true; B_likes_apples = true; ``` 假設今天我們需要知道「他們是不是**都喜歡**吃蘋果」,那該怎麼做呢?你可能覺得很簡單,直接建立一個變數並將值定義為「 true 」就好了,因為我們已經知道「A喜歡蘋果」跟「B喜歡蘋果」了。但這需要仰賴人來判斷,有沒有一種方法,可以讓電腦判斷呢? 此時,「&&」這個運算符號就很有用了。就像「 + 」這個符號可以解讀為「加」,「&&」這個符號可以直接解讀為「而且」。回到「他們是不是都喜歡吃蘋果」這個問題,可以看作一個新的題目: 是否「A喜歡吃蘋果,而且B也喜歡吃蘋果」? 這麼一來,我們就可以把問題交給電腦了: ``` they_like_apples = A_likes_apples && B_likes_apples; print(they_like_apples); ``` 電腦在執行時,會把變數換成它們代表的值,而「A_likes_apples」和「B_likes_apples」都代表「 true 」,因此電腦的解讀會變成: ::: document 建立一個變數「they_like_apples」,它的值是「true 而且 true」 ::: 最後,螢幕上將會出現「 true 」。大家都喜歡蘋果!讓我們作個結論,**「&&」運算符號,只有在符號兩側都「 true 」的情況下,才會是「 true 」**;只要任一側有「 false 」,結果就會是「 false 」。 ## 「||」運算 「||」所代表的意義是「或者」,使用方法與上述的「&&」一樣,但結果卻大不相同。如果我們要設計一道門,只要年滿18歲或者已經結婚的人都能通過。那我們該怎麼做呢?先讓我們建立兩個變數: ``` is_married = true; over_18 = false; ``` 我們的目標是讓電腦顯示「 true 」,那該怎麼做?「 is_married 」是「 true 」,而「 over_18 」是「 false 」,因此我們不能使用「&&」運算,因為一個 true 和一個 false,是一個 false。此時「||」就很有用了: ``` door_open = is_married || over_18; print(door_open); ``` 電腦看到時,會把它解讀為: ::: document 建立一個變數 door_open,並把值定義為「is_married 或 over_18」 ::: 也就是: ::: document 建立一個變數 door_open,並把值定義為「true 或 false」 ::: 最後螢幕上會出現「true」。作一個結論:**「||」運算只要在兩側中任一側有「 true 」,結果都會是「 true 」**。 ![](http://blog.michelletorres.mx/wp-content/uploads/2016/09/and_or.jpg) ## 「!」運算 「!」是一個很好懂的運算符號,所代表的意義是「不是」,簡單來說它的用意就是將 true 和 false 交換。**如果今天看到了一個 true,就輸出 false;如果今天看到了一個 false,就輸出 true**。 ``` a = true; b = !a; print(b); ``` 螢幕上將會印出「 false 」。
複製內容