Swift 入門指南 V1.00 - 單元 16 - 繼續測試





































Swift 入門指南 V1.00 - 單元 16 - 繼續測試









軟體生命週期 (software life cycle) 分成三大階段,開發 (development) 、使用 (use) 、修改 (modification) ,接下來便是使用、修改的無限循環





開發階段,自然免不了對需求的分析 (analysis) ,然後設計 (design) 、建置 (implement) ,接著進行測試 (testing) ,其實這順序沒有絕對,「設計」與「建置」可能只是先做個簡單版本,「測試」與「使用」說到底都是實際執行後觀察結果,「修改」等於以之前的基礎再次「設計」與重新「建置」。



我們打算開發的 Encrypt 類別 (class) 的需求已經很清楚,也就是產生一個英文小寫字母的對照餘數陣列 (array) ,我們用 code 屬性 (property) 儲存這個陣列,然後以 setCode() 方法 (method) 建立這個陣列。



上個單元中,我們將 a 設定為 3b 設定為 5 ,順利的跑出一個英文小寫字母的對照餘數陣列,現在我們希望把 ab 設定成 09 之間的隨機整數,這該怎麼做呢?簡單講,就是要有個產生隨機整數的方式,還好程式庫 (library) 中已經有相關程式供我們直接使用,因此我們不需要自己重頭開發。



Cocoa 中有一個函數 arc4random() 可產生一個型態為 UInt32 的隨機整數,介於 0UInt32.max 之間,在 64 位元的機器上, UInt32.max 的值為 4294967295 ,因此把取得的數字除以 10 ,得到的餘數就會是介於 09 之間的隨機整數。



Cocoa 為 Mac OS 的應用程式介面 (application programming interface) 。


由於需要用到 Cocoa ,因此要在 Playground 的開始幾行加入 import Cocoa




import Cocoa


setCode() 修改如下























// 設定密碼表

func setCode() {
   var a = Int(arc4random() % 10)
   var b = Int(arc4random() % 10)
 
   var c = 97
   var i, x, y, m: Int
   // 以迴圈取得每一個餘數
   for i = 0; i < 26; i++ {
      x = c
      y = x * a + b
      m = y % 26
      code.append(m)
      c++
   }
 
   // 移除第一個預設值
   code.removeAtIndex(0)
}


由於 arc4random() 回傳的是 UInt32 型態的整數,直接寫出來的整數型態則為 Int ,計算需要的型態也是 Int ,所以這裡用 Int 的建構子 (initializer) 轉換型態為 Int 後,才把餘數指派到 ab 內。


測試程式碼不變,移到下面去看一下結果吧





看起來 OK ,多寫些測試程式碼看看





居然有一行都是 2 ,有些是我們要的餘數陣列沒錯,有一些則不是,那表示我們所用的數學公式有問題,接下來要先修正數學公式。



中英文術語對照
































































軟體生命週期software life cycle
開發development
使用use
修改modification
分析analysis
設計design
建置implement
測試testing
類別class
陣列array
屬性property
方法method
程式庫library
應用程式介面application programming interface
建構子initializer







沒有留言:




















window.___gcfg = { 'lang': 'zh-TW' };





Popular posts from this blog

VPN Gate Client 4.27.9668 (201805030) 簡體中文版 - 不限流量免費VPN軟體 手機可用公共VPN中繼伺服器

Tình cờ gặp nhau 3 lần trên một chuyến xe, tài xế bus kết hôn với nữ hành khách vì "có duyên phận"

"Thiên thần lai" MOMOLAND khiến fan phát sốt vì màu tóc mới quá nổi trong ảnh nhá hàng