1. 程式人生 > >利用 Xcode 的 Command Line Tool 練習程式解題

利用 Xcode 的 Command Line Tool 練習程式解題

利用 Xcode 的 Command Line Tool 練習程式解題

網路上有很多適合程式初學者練功的程式題目,不過這些題目大部分都需要使用者手動輸入一些資料,然後再計算印出結果,因此比較不適合以 iOS App 專案或 playground 練習。

其實 Xcode 內建的專案就有一種很適合練習這些題目,就在 macOS 下的 Command Line Tool。 接下來我們就以 [email protected] 裡的每週 Coding 任務為例,說明如何從 Xcode 解題吧。

1 建立新專案,選擇 macOS 下的 Command Line Tool。

2 專案的語言選擇 Swift。

如果你想練習別的語言,也可以選擇 Objective-C,C++ 或 C。

3 利用 function readLine() 讀取使用者輸入的文字。

func readLine(strippingNewline: Bool = default) -> String?

4 完整程式碼。

let name = readLine()
let studentNumber = readLine()
let chineseString = readLine()
let computerString = readLine()
let codeString = readLine()
if let name = name, let studentNumber = studentNumber, let chineseString = chineseString, let chineseGrade = Int(chineseString), let computerString = computerString, let computerGrade = Int(computerString), let codeString = codeString, let codeGrade = Int(codeString) {
   let totalGrade = chineseGrade + computerGrade + codeGrade
   let average = totalGrade / 3
   print("Name:\(name)")
   print("Id:\(studentNumber)")
   print("Total:\(totalGrade)")
   print("Average:\(average)")
}

說明:

由於 readLine 回傳的字串是 optional,所以必須搭配 optional binding 讀取內容,而像分數之類的資料,也需要額外將字串轉換成 Int 後才能計算。

5 按左上角的三角形按鈕執行。

結果

剛剛的程式,我們只能測試一次。如果想輸入另一位同學的資料,需要按下三角形按鈕重新執行。有沒有方法可以偷懶,讓它無限執行呢 ?

當然可以,只要將剛剛的程式包在 while true { } 裡即可。

while true {
   let name = readLine()
   let studentNumber = readLine()
   let chineseString = readLine()
   let computerString = readLine()
   let codeString = readLine()
   if let name = name, let studentNumber = studentNumber, let chineseString = chineseString, let chineseGrade = Int(chineseString), let computerString = computerString, let computerGrade = Int(computerString), let codeString = codeString, let codeGrade = Int(codeString) {
      let totalGrade = chineseGrade + computerGrade + codeGrade
      let average = totalGrade / 3
      print("Name:\(name)")
      print("Id:\(studentNumber)")
      print("Total:\(totalGrade)")
      print("Average:\(average)")
   }
}

ps: 如果想在 Terminal 執行剛剛的程式也可以,切換到 swift 檔的資料夾下後,輸入 swift 指令加上 swift 檔名即可執行。