2016-07-29 2 views
0

Swift에서 if 문과 옵션을 사용하는 논리 워크 스루 질문.Swift If 옵션 (계산기 Stanford/Youtube에서 제공)

계산기 레이블에서 0이 삭제되고 그 이유는 다음과 같지 않습니다.

스탠포드 유튜브 비디오의 약 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 블록이 실행되고 계산기에 0이 표시됩니다. 그런 다음 사실로 설정됩니다.

두 번째로 누를 때마다 true이고 누를 때마다 현재 표시됩니다. 눌린 내용은 디스플레이에있는 내용과 연결됩니다.

그래서 이제 디스플레이가 0을 대체하는 것과 같은 일이 발생 했습니까? 초기 값은 연결되는 대신 어떻게 대체 되었습니까?

여기서 다른 코드를 찾고 있지 않습니다. 단지 임의의 예입니다. 어떤 도움을 주셔서 감사합니다. 환호

답변

0

나는 그것을 통해 이야기를 해결했다고 생각합니다. 처음에는 bool이 false이므로 else 블록은 초기 키 누름에서 히트되고 0 표시는 어떤 키가 눌러 졌는지에 의해 대체됩니다. bool은 true로 설정됩니다. 이후의 모든 프레스는 참이고 연결됩니다.

1

touchDigit는 작업입니다. 버튼 중 하나는 처음에 프로그램이 실행되고 레이블 제로 기본 세트가

올바른 디스플레이에

을 누르면하지 않는 한 그것은

userIsInTheMiddleOfTyping이 거짓 실행되지 않습니다 else 블록은 실행됩니다.

잘못된 것입니다. 버튼을 누르지 않았기 때문에 메서드가 실행되지 않습니다.

관련 문제