2017-11-21 10 views
0

に価値を取ります。 previousNumberおよびnumberOnScreen考え方は、2進数を小数に変換し、計算して答えを元に戻すことです。第二変数は初が、私は2つの変数を持っている番号については、バイナリ電卓アプリを構築し

Iピック最初(previousNumber)数は、これはなぜそれが[1010 10100、10、10}

に任意のアイデアを印刷1010及び第二(numberOnScreen)10100

var numberOnScreen:Int = 0; 
var previousNumber:Int = 0; 
var doingMath = false 
var operation = 0; 
var decimal = 0; 
var decimal1 = 0; 
var binary:String = "" 
var binary1:String = "" 

@IBOutlet weak var label: UILabel! 

@IBAction func Numbers(_ sender: UIButton) { 
    if doingMath == true 
    { 
     label.text = String(sender.tag-1) 
     numberOnScreen = Int(label.text!)! 
     doingMath = false 
    } 
    else 
    { 
     label.text = label.text! + String(sender.tag-1) 
     numberOnScreen = Int(label.text!)! 
    } 
} 

@IBAction func buttons(_ sender: UIButton) { 

    if label.text != "" && sender.tag != 6 && sender.tag != 8 
    { 
     previousNumber = Int(label.text!)! 
     binary = "\(previousNumber)" 
     decimal = Int(binary, radix: 2)! 
     binary1 = "\(numberOnScreen)" 
     decimal1 = Int(binary1, radix: 2)! 

     operation = sender.tag 
     doingMath = true; 
    } 
    else if sender.tag == 8 
    { 
     if operation == 3 //adding 
     { 
      print(previousNumber, numberOnScreen, decimal, decimal1) 

であると言うことができますハプニング?

+0

それは 'numberOnScreen'の値をチェックし、私の作品、多分それは – paper1111

+0

間違っているそれだけでなく、遊び場に私の作品が、私はアプリものの番号を挿入すると、その後、彼は私に間違った答えを与えます。このため、すべてのx + y = x + x x-y = x-xである。そしてその – Gustav

+0

上のボタンは、FUNCをbuttons' 'に接続されていると' 'sender.tag' 6'と' 8'の意味は何ですかどの? – vacawama

答えて

0

=キーを押すと、decimal1の計算を更新する必要があります。あなたは=を処理している場所にそのコードを移動:

@IBAction func buttons(_ sender: UIButton) { 

    if label.text != "" && sender.tag != 6 && sender.tag != 8 
    { 
     previousNumber = Int(label.text!)! 
     binary = "\(previousNumber)" 
     decimal = Int(binary, radix: 2)! 

     operation = sender.tag 
     doingMath = true; 
    } 
    else if sender.tag == 8 
    { 
     binary1 = "\(numberOnScreen)" 
     decimal1 = Int(binary1, radix: 2)! 

     if operation == 3 //adding 
     { 
      print(previousNumber, numberOnScreen, decimal, decimal1) 

はまた、私はあなたのコードでマジックナンバーを取り除くことをお勧めしますと定数に置き換えます。

をして、あなたのコードは次のようになります。:あなたの鍵タグでは、このように構造体を定義することができ

if label.text != "" && sender.tag != Key.clear && sender.tag != Key.equals { 

より明確です。

関連する問題