swift
1import UIKit 2 3class ViewController: UIViewController { 4 5 @IBOutlet weak var CalcProc: UITextField! //process 6 @IBOutlet weak var CalcRslt: UILabel! //result 7 var numberOnScrren:Double = 0; 8 var previousNumber:Double = 0; 9 var performingMath = false 10 var operation = 0; 11 12 //tag 0~10 11は00入れたらあるが現状はない 13 @IBAction func tapNumber(_ sender: Any) { 14 15 // 16 CalcRslt.text! = "" 17 18 if performingMath == true 19 { 20 CalcRslt.text = String((sender as AnyObject).tag + 0) 21 numberOnScrren = Double(CalcRslt.text!)! 22 performingMath = false 23 }else 24 { 25 CalcRslt.text = CalcRslt.text! + String((sender as AnyObject).tag + 0) 26 numberOnScrren = Double(CalcRslt.text!)! 27 } 28 29 } 30 31 //tag 12~15 32 @IBAction func calcBtr(_ sender: Any) { 33 if CalcRslt.text != "" && (sender as AnyObject).tag != 11 && (sender as AnyObject).tag != 15{ 34 previousNumber = Double(CalcRslt.text!)! 35 36 if (sender as AnyObject).tag == 12 //Plus 37 { 38 CalcRslt.text = "+"; 39 } 40 if (sender as AnyObject).tag == 13 //Minus 41 { 42 CalcRslt.text = "-"; 43 } 44 if (sender as AnyObject).tag == 14 // Multiply 45 { 46 CalcRslt.text = "×"; 47 } 48 if (sender as AnyObject).tag == 15 //Divide 49 { 50 CalcRslt.text = "÷"; 51 } 52 53 operation = (sender as AnyObject).tag 54 performingMath = true 55 } 56 else if (sender as AnyObject).tag == 17 57 { 58 if operation == 12 59 { 60 CalcRslt.text = String(previousNumber + numberOnScrren) 61 } 62 else if operation == 13 63 { 64 CalcRslt.text = String(previousNumber - numberOnScrren) 65 } 66 else if operation == 14 67 { 68 CalcRslt.text = String(previousNumber * numberOnScrren) 69 } 70 else if operation == 15 71 { 72 CalcRslt.text = String(previousNumber / numberOnScrren) 73 } 74 } 75 } 76 77 //tag 16,17 78 @IBAction func deleteBtr(_ sender: Any) { 79 if (sender as AnyObject).tag == 16 80 { 81 CalcRslt.text = "0" 82 previousNumber = 0; 83 numberOnScrren = 0; 84 operation = 0; 85 86 } 87 if (sender as AnyObject).tag == 16 88 { 89 /*一文字ずつ消す 90 ex)1234の時123になる*/ 91 } 92 } 93 94 //18~21 95 @IBAction func toolBtr(_ sender: Any) { 96 } 97 98 //22,23 99 @IBAction func otherBtr(_ sender: Any) { 100 } 101 102 override func viewDidLoad() { 103 super.viewDidLoad() 104 // Do any additional setup after loading the view, typically from a nib. 105 } 106 107 override func didReceiveMemoryWarning() { 108 super.didReceiveMemoryWarning() 109 // Dispose of any resources that can be recreated. 110 } 111 112 113}
出来たところ
勉強で電卓ライクなアプリを勉強で作っています。
基本的な四則演算や計算後のクリア処理まででは出来ました。
やりたいこと
テキストフィールドで途中式を表示し、labelで合計を表示させたい。
=を使わずに合計を表示させたい。
(入力された数字を都度に計算しlabelに表示させる)
//最新コード
swift
1// 2// ViewController.swift 3// calcuator 4// 5// Created by ... on 2018/09/10. 6// Copyright © 2018年 ... All rights reserved. 7// 8 9import UIKit 10 11class ViewController: UIViewController { 12 13 @IBOutlet weak var CalcProc: UITextField! //process 14 @IBOutlet weak var CalcRslt: UILabel! //result 15 var numberOnScrren:Double = 0; 16 var previousNumber:Double = 0; 17 var performingMath = false 18 var operation = 0; 19 var isFirst = true // 最初の処理かどうか 20 21 //tag 0~10 11は00入れたらあるが現状はない 22 @IBAction func tapNumber(_ sender: Any) { 23 24 if isFirst { 25 isFirst = false 26 CalcRslt.text! = "" 27 // 一度だけ実行したい処理 28 } 29 30 if performingMath == true 31 { 32 CalcRslt.text = String((sender as AnyObject).tag + 0) 33 numberOnScrren = Double(CalcRslt.text!)! 34 // 35 CalcProc.text = String((sender as AnyObject).tag + 0) 36 numberOnScrren = Double(CalcProc.text!)! 37 performingMath = false 38 }else 39 { 40 CalcRslt.text = CalcRslt.text! + String((sender as AnyObject).tag + 0) 41 numberOnScrren = Double(CalcRslt.text!)! 42 43 CalcProc.text = CalcRslt.text! + String((sender as AnyObject).tag + 0) 44 numberOnScrren = Double(CalcProc.text!)! 45 } 46 47 } 48 49 //tag 12~15 50 @IBAction func calcBtr(_ sender: Any) { 51 if CalcRslt.text != "" && (sender as AnyObject).tag != 11 && (sender as AnyObject).tag != 17{ 52 previousNumber = Double(CalcRslt.text!)! 53 54 if (sender as AnyObject).tag == 12 //Plus 55 { 56 CalcProc.text = String(numberOnScrren) + "+"; 57 } 58 if (sender as AnyObject).tag == 13 //Minus 59 { 60 CalcProc.text = String(numberOnScrren) + "-"; 61 } 62 if (sender as AnyObject).tag == 14 // Multiply 63 { 64 CalcProc.text = String(numberOnScrren) + "×"; 65 } 66 if (sender as AnyObject).tag == 15 //Divide 67 { 68 CalcProc.text = String(numberOnScrren) + "÷"; 69 } 70 71 operation = (sender as AnyObject).tag 72 performingMath = true 73 } 74 else if (sender as AnyObject).tag != 0 || (sender as AnyObject).tag != 9 //ここで計算する処理 75 { 76 if operation == 12 77 { 78 CalcRslt.text = String(previousNumber + numberOnScrren) 79 CalcProc.text = String(previousNumber + numberOnScrren) 80 } 81 else if operation == 13 82 { 83 CalcRslt.text = String(previousNumber - numberOnScrren) 84 CalcProc.text = String(previousNumber - numberOnScrren) 85 } 86 else if operation == 14 87 { 88 CalcRslt.text = String(previousNumber * numberOnScrren) 89 CalcProc.text = String(previousNumber * numberOnScrren) 90 } 91 else if operation == 15 92 { 93 CalcRslt.text = String(previousNumber / numberOnScrren) 94 CalcProc.text = String(previousNumber / numberOnScrren) 95 } 96 } 97 } 98 99 //tag 16,17 100 @IBAction func deleteBtr(_ sender: Any) { 101 if (sender as AnyObject).tag == 17 102 { 103 CalcRslt.text = "0" 104 CalcProc.text = "0" 105 previousNumber = 0; 106 numberOnScrren = 0; 107 operation = 0; 108 109 } 110 if (sender as AnyObject).tag == 17 111 { 112 /*一文字ずつ消す 113 ex)1234の時123になる*/ 114 } 115 } 116 117 //18~21 118 @IBAction func toolBtr(_ sender: Any) { 119 } 120 121 //22,23 122 @IBAction func otherBtr(_ sender: Any) { 123 } 124 125 126 override func viewDidLoad() { 127 super.viewDidLoad() 128 // Do any additional setup after loading the view, typically from a nib. 129 } 130 131 override func didReceiveMemoryWarning() { 132 super.didReceiveMemoryWarning() 133 // Dispose of any resources that can be recreated. 134 } 135 136 137}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/09/14 14:54
2018/09/14 15:01
退会済みユーザー
2018/09/14 15:09