2016-07-29 45 views
0

Swift中if語句和可選項的邏輯演練問題。Swift如果聲明與選項(來自斯坦福大學計算機/ Youtube)

在計算器標籤中零被刪除,我不追蹤爲什麼發生這種情況。

約在斯坦福YouTube視頻的1:10:03在這裏:https://youtu.be/_IRx1zoriPo?t=1h10m3s

代碼:

import UIKit 

class ViewController: UIViewController { 

    // linked to label 
    @IBOutlet weak var display: UILabel! 

    var userIsInMiddleOfTyping = false 

    // linked to keys 0-9 
    @IBAction func touchDigit(sender: UIButton) { 
     let isDigit = sender.currentTitle! 

     if userIsInMiddleOfTyping { 
      let textCurrentlyInDisplay = display.text! 
      display.text = textCurrentlyInDisplay + isDigit 
     } else { 
      display.text = isDigit 
     } 
     // user now typing 
     userIsInMiddleOfTyping = true 

    } 

} 

最初程序運行和零默認標籤集是在顯示屏上。 userIsInTheMiddleOfTyping爲false,所以else塊運行並在計算器中顯示零點。然後設置爲true。

第二次通過它,然後是真實的,現在在顯示器中被按下。然後連接到顯示器上的任何內容。

那麼發生了什麼事情,顯示器現在取代了零?初始值是如何被替換而不是被連接的?

我不是在這裏尋找不同的代碼,它只是一個任意的例子。任何幫助讚賞。歡呼聲

回答

0

我想我通過談論解決了它。最初,bool是假的,所以else塊在初始按鍵時被擊中,而零的顯示被任何按鍵所取代。布爾然後設置爲true。隨後的所有印刷機均爲真,並連接在一起。

1

touchDigit是一個動作。它不運行,除非其中一個按鈕被按下

最初的程序運行,並在標籤中零默認設置是在顯示屏

正確

的userIsInTheMiddleOfTyping是假的所以其他塊運行

錯誤。該方法不會運行,因爲沒有按鈕被按下