到此為止你已經學會了讀寫文件,命令列處理,以及很多 Ruby 數學運算功能。
今天,你將要開始學習邏輯了。你要學習的不是研究院里的高深邏輯理論,只是程序設計師每天都用到的讓程序跑起來的基礎邏輯知識。
學習邏輯之前你需要先記住一些東西。這個練習我要求你一個星期完成,不要擅自修改 schedule,就算你煩得不得了,也要堅持下去。這個練習會讓你背下來一系列的邏輯表格,這會讓你更容易地完成后面的習題。
需要事先警告你的是:這件事情一開始一點樂趣都沒有,你會一開始就覺得它很無聊乏味,但它的目的是教你程序設計師必須的一個重要技能 — 一些重要的概念是必須記住的,一旦你明白了這些概念,你會獲得相當的成就感,但是一開始你會覺得它們很難掌握,就跟和烏賊摔跤一樣,而等到某一天,你會刷的一下豁然開朗。你會從這些基礎的記憶學習中得到豐厚的回報。
這里告訴你一個記住某樣東西,而不讓自己抓狂的方法:在一整天里,每次記憶一小部分,把你最需要加強的部分標記起來。不要想著在兩小時內連續不停地背誦,這不會有什么好的結果。不管你花多長時間,你的大腦也只會留住你在前15 或者30 分鐘內看過的東西。
取而代之,你需要做的是創建一些索引卡片,卡片有兩列內容,正面寫下邏輯關系,反面寫下答案。你需要做到的結果是:拿出一張卡片來,看到正面的表達式,例如「True or False」,你可以立即說出背面的結果是「True」!堅持練習,直到你能做到這一點為止。
一旦你能做到這一點了,接下來你需要每天晚上自己在筆記本上寫一份真值表出來。不要只是抄寫它們,試著默寫真值表,如果發現哪裡沒記住的話,就飛快地看一眼這里的答案。這樣將訓練你的大腦讓它記住整個真值表。
不要在這上面花超過一周的時間,因為你在后面的應用過程中還會繼續學習它們。
# 邏輯術語
* * * * *
在 Ruby 中我們會用到下面的術語(符號或者詞匯)來定義事物的真(True)或者假(False)。電腦的邏輯就是在程序的某個位置檢查這些符號或者變量組合在一起表達的結果是真是假。
* ` and `和
* ` or `或
* ` not` 非
* `!= `(not equal) 不等于
* `== `(equal) 等于
* `>= `(greater-than-equal) 大于等于
* `<= `(less-than-equal) 小于等于
* ` true `真
* `false `假
其實你已經見過這些符號了,但這些詞匯你可能還沒見過。這些詞匯(and, or, not)和你期望的效果其實是一樣的,跟英語里的意思一模一樣。
# 真值表
* * * * *
我們將使用這些符號來創建你需要記住的真值表。
|NOT|True?|
| -- | -- |
|not False|True|
|not True|False|
|OR| rue?|
| -- | -- |
|True or False|True|
|True or True|True|
|False or True|True|
|False or False|False|
|AND|True?|
| -- | -- |
|True and False|False|
|True and True|True|
|False and False|False|
|False and True|False|
|!=|True|
| -- | -- |
|1 != 0|True|
|1 != 1|False|
|0 != 0|False|
|0 != 1|True|
|==|True?|
|--|--|
|1 == 0|False|
|1 == 1 |True|
|0 == 1| False|
|0 == 0| True|
|NOT AND |True?|
|--|--|
|not (True and False) |True|
|not (True and True) |False|
|not (False and True) |True|
|not (False and False) |True|
|NOT OR| True?|
|--|--|
|not (True or False) |False|
|not (True or True) |False|
|not (False or True) |False|
|not (False or False)| True|
現在使用這些表格創建你自己的卡片,再花一個星期慢慢記住它們。記住一點,這本書不會要求你成功或者失敗,只要每天盡力去學,在盡力的基礎上多花一點功夫就可以了。
- 笨方法更簡單
- 習題 00: 準備工作
- 習題 01: 第一個程序
- 習題 02: 注釋和#號
- 習題 03: 數字和數學計算
- 習題 04: 變量的命名
- 習題 05: 更多的變量和輸出
- 習題 06: 字符串和文字
- 習題 07: 更多輸出
- 習題 08: 輸出,輸出
- 習題 09: 輸出,輸出,輸出~
- 習題 10: 那是啥?
- 習題 11: 提問
- 習題 12: 模塊
- 習題 13: 參數,解包,參數
- 習題 14: 提示和傳遞
- 習題 15: 讀取文件
- 習題 16: 操作文件
- 習題 17: 更多的文件操作
- 習題 18: 命名,變量,代碼,函數
- 習題 19: 函數和變量
- 習題 20: 函數和文件
- 習題 21: 函數可以傳入信息
- 習題 22: 到現在你學到了什么?
- 習題 23: 閱讀一些代碼
- 習題 24: 更多練習
- 習題 25: 更多更多的練習
- 習題 26: 恭喜你,現在來考試了!
- 習題 27: 記住邏輯關系
- 習題 28: Boolean表達式練習
- 習題 29: 如果
- 習題 30: Else 和 If
- 習題 31: 做出判斷
- 習題 32: 循環和數組
- 習題 33: While
- 習題 34: 存取數組里的元素
- 習題 35: 分支和函數
- 習題 36: 設計和測試
- 習題 37: 重視各種符號