學程式設計跟任何語言一樣,「練習」是不二法門,學外語有個「1,000小時定律」,就是說一個人從零基礎,持續累積1,000小時的練習,就能精通某種外語,假設最少每週練習6小時的話,大約166週(3年左右),就能達成目標。
程式設計應該也差不多,100小時左右可以入門,1,000小時能夠精通,不會忘記。1,000小時看起來好像很漫長,但實際上,如果有天份和興趣,這1,000小時的投資,可以讓你一輩子受用20-30年,非常划算。
Swift 既然是一種「語言」,就會有常見的「句型」跟「片語」,以我們目前所學歸納起來,有以下幾種基本句型:
表1-6a Swift基本句型
# | Swift基本句型 | 範例 | 說明 |
---|---|---|---|
1. | 宣告句 | `let n = 0 | |
var 我的名字 = "Angela" | |||
var 陣列: [Int] | |||
func 因數(_ n: Int) -> [Int] { }` | 宣告用來定義新的變數、常數、函式、資料型態...等等 | ||
2. | 指定句 | `新陣列 = 起始陣列 + [下一個數] | |
n = 費氏數列(92)` | 先做等號右邊的運算,再將結果指定給等號左邊 | ||
3. | 條件句 | if i < 100 { } else { } |
根據邏輯運算式的結果,選擇執行的 { } 段落,else 子句可省略 |
4. | 迴圈句 | `for i in 1...100 { } | |
while i < 100 { } | |||
repeat { } while i < 100` | for, while, repeat 三種迴圈 | ||
5. | 函式呼叫 | print() |
注意函數的參數與回傳值 |
6. | 其他指令 | return |
控制程式執行流程 |
而所謂的「片語」是構成句子的一部分,在 Swift 裡面通常稱為「運算式(Expression)」或表達式,本身並不是完整的句子。歸納如下表:
表1-6b Swift運算式
# | Swift運算式 | 例句 | 說明 |
---|---|---|---|
1. | 算術運算式 | x * x + 2 * (x + 1) |
先乘除後加減,括號最優先 |
2. | 邏輯運算式 | i == 99n < 0 |
結果為 true 或 false |
3. | 字串運算式 | ||
陣列運算式 | `"你好" + "我是Angel" + "很高興認識你" | ||
[0, 1] + [1, 2, 3, 5]` | 數字以外的資料類型,有些也可以用來做算術運算或邏輯運算 | ||
4. | { } 段落 | `{ | |
let pi = 3.14, i = 10 | |||
var sum = 0 | |||
sum = sum + i * pi * 2 | |||
}` | { } 是零或多個句子形成的「段落」,當成「子句」,放在句子的最後。{ } 裡面,任何句型都可以寫。 |
另外「函式呼叫(function call)」比較特別,函式可能是一個新的指令,可以當作單獨的句子,如 print();若函式有回傳值,也可當作是運算式的一部分,例如 if 費氏數列(n) < 10000 { print(n) }
所以,就像學習寫作文一下,先學單字(變數、常數、保留字)、再學造詞(運算式)造句、最後練習作文。
用以上這些的句型,來分析一下範例1-5c程式,如下圖。
這個小程式由(最外層)4個句子組成,其中的第③句函式宣告又是由⑹個子句組成,其中包含一個for迴圈句,迴圈中有⒉個子句。