Swift实现简单计算器

本文实例为大家分享了Swift实现简单计算器的具体代码,供大家参考,具体内容如下

使用Storyboard

快速而又方便的进行控件的布局,功能操作简单的进行一些运算;

代码实现

//
//  ViewController.swift
//  Swift_Calculator
//
//  Created by 周文春 on 16/3/2.
//  Copyright  2016年 周文春. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var lableResult: UILabel!

    //第一操作
    var firstOperand: Double = 0.0
    //第二操作
    var secondOperand: Double = 0.0
    //标记是否输入了小数点
    var decimalPointFlag: Bool = false
    //是否输入第二操作数
    var isSecond: Bool = false
    //操作符
    var operatorFlag: String = ""

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func buttonTap(sender: UIButton) {
        //lableResult 中默认是0,如果开始输入数字,则先清除0
        if lableResult.text == "0" || (isSecond && secondOperand == 0.0) {

            lableResult.text = ""
        }
        //将用户录入的数添加到lableResult中
        lableResult.text = lableResult.text! + sender.titleLabel!.text!

        if isSecond {
//            secondOperand = (lableResult.text! as NSString).doubleValue
            secondOperand = NSString(string: lableResult.text!).doubleValue
        }else {
            //将lableResult中的字符串转化为双精度数
//            firstOperand = (lableResult.text! as NSString).doubleValue
            firstOperand = NSString(string: lableResult.text!).doubleValue
        }
        print(firstOperand)
    }

    @IBAction func decimalPointTap() {

        if !decimalPointFlag {
            lableResult.text = lableResult.text! + "."
            if isSecond {
                secondOperand = (lableResult.text! as NSString).doubleValue
            }else {
                firstOperand = (lableResult.text! as NSString).doubleValue
            }

            decimalPointFlag = !decimalPointFlag
        }
    }

    @IBAction func operatorTap(sender: UIButton) {
        if firstOperand != 0 {
            isSecond = true
            decimalPointFlag = false
            switch sender.titleLabel!.text! {
                case "+":
                      operatorFlag = "+"
                case "-":
                      operatorFlag = "-"
                case "*":
                      operatorFlag = "*"
                case "÷":
                      operatorFlag = "/"
            default:
                      operatorFlag = " "
            }
        }
    }

    @IBAction func resultTap(sender: UIButton) {
        //确保第二操作数有值
        if isSecond {
            //除数不能为0
            if operatorFlag == "/" && secondOperand == 0 {
                print("Error: 除数不能为0")
                return
            }

            var result: Double = 0.0
            switch operatorFlag {
                case "+":
                result = firstOperand + secondOperand
                case "-":
                result = firstOperand - secondOperand
                case  "*":
                result = firstOperand * secondOperand
                case  "/":
                result = firstOperand / secondOperand
            default :
                result = 0.0
            }

            lableResult.text = result.description
            print("第一操作: \(firstOperand)")
            print("操作符: \(operatorFlag)")
            print("第二操作: \(secondOperand)")
            print("结果: \(result)")

        }

    }

    @IBAction func clear(sender: UIButton) {

        //lable对象显示0
        lableResult.text = "0"

        //第一操作数清零
        firstOperand = 0.0

        //第二操作数清零
        secondOperand = 0.0

        //小数点标记设置为假
        decimalPointFlag = false

        //第二操作数标记设置为假
        isSecond = false

        //操作清空
        operatorFlag = ""

    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Swift实现简易计算器功能

    用Swift写一个简单计算器的Demo,供大家参考,具体内容如下 实验环境: Xcode v6.4   & OS X Yosemite 10.10 功能描述: 1.实现加减乘除+根号(结果display为Double型)2.边界适应:各元素之间的距离固定,且适应手机旋转(Roate)(学习过程,根据Stanford的Swift课程而写的程序) 代码实现: // //  ViewController.swift //  Calculator // //  Created by VincentYau

  • swift实现简易计算器项目

    本文实例为大家分享了swift实现简易计算器的具体代码,供大家参考,具体内容如下 首先在storyboard中搭建出界面 接着上viewcontroller代码 import UIKit class ViewController: UIViewController {     @IBOutlet weak var result: UILabel!     var n1: String = ""     var n2: String = ""     var n3:

  • 使用swift实现计算器功能

    关于计算器的实现在做之前想了几个方案. 首先是做一个输入功能,再以后缀表达式来进行计算,但是这个更适用于做一个科学计算器,在平日生活中的计算器需要一些便捷的计算效果. 所以实现这个计算器使用了将数字存入Label然后转化String为Int的方式. 算数符号可以存于一个数组内,以数组自带的编号来表示运算符,程序内需要储存的数字可以简单的两个,但是只用两个数字以类似 sum1 += sum2的形式会有一些小BUG出现,所以中间加了一个过渡数字. 计算器里有三个布尔类型的值来分别判断:之前是否输入过

  • swift实现简单的计算器

    本文实例为大家分享了swift实现简单计算器的具体代码,供大家参考,具体内容如下 代码 // //  ViewController.swift //  Calculator // //  Created by tutujiaw on 15/4/25. //  Copyright (c) 2015年 tutujiaw. All rights reserved. //   import UIKit   class ViewController: UIViewController {       @I

  • Swift实现简单计算器项目

    本文实例为大家分享了Swift实现简单计算器项目的具体代码,供大家参考,具体内容如下 // //  ViewController.swift //  计算器 // //  Created by 悦兑科技 on 15/1/14. //  Copyright (c) 2015年 BSY. All rights reserved. // import UIKit class ViewController: UIViewController {     var numOne = UITextField(

  • Swift实现复数计算器

    本文实例为大家分享了Swift实现复数计算器的具体代码,供大家参考,具体内容如下 Swift使用笛卡尔和极坐标进行转换的复数计算器 import Foundation struct Complex{     //实部real     public var real : Double = 0     //虚部img     public var img : Double = 0     public var polar :(mod:Double,arg:Double) = (0,0)     pu

  • Swift实现简单计算器

    本文实例为大家分享了Swift实现简单计算器的具体代码,供大家参考,具体内容如下 使用Storyboard 快速而又方便的进行控件的布局,功能操作简单的进行一些运算; 代码实现 // //  ViewController.swift //  Swift_Calculator // //  Created by 周文春 on 16/3/2. //  Copyright 2016年 周文春. All rights reserved. // import UIKit class ViewControl

  • js的表单操作 简单计算器

    代码: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv

  • php学习之简单计算器实现代码

    复制代码 代码如下: <html> <head> <title>PHP实现简单计算器</title> <meta http-equiv="Content-Type" content="text/html;charset=gb2312"> </head> <?php //单路分支 if(isset($_GET["sub"])) { $num1=true;//数字1是否为空

  • javascript实现简单计算器效果【推荐】

    最终效果如下图-2,有bug:就是整数后点击%号结果正确,如果小数后面点击%的话结果就错误!其他都正常,求指点:input的value是string类型的,在JS中改如何正确处理下图-1中的if部分?? 图-1 图-2 HTML代码如下 <body> <div id="calculator"> <div class="LOGO"> <span class="name">简单的计算器</span

  • 纯js代码实现简单计算器

    本文实例分享了纯js代码实现简单计算器代码,相信大家会喜欢.具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <html> <head> <title> new document </title> <script type="text/javascript"> function count(){ var txt1 = parseInt( document.getElementById(

  • 基于JSP实现一个简单计算器的方法

    本文实例讲述了基于JSP实现一个简单计算器的方法.分享给大家供大家参考.具体实现方法如下: index.jsp 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  <%  String path = request.getContextPath();  String basePath = request.getSch

  • javascript简单计算器 可美化

    JS计算器代码: javascript简单计算器 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 说明: JavaScript eval() 函数 定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 返回值 通过计算 string 得到的值(如果有的话). 说明 该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回.因此请不要为 eval() 函数传递 String 对象来作为参数. 如果试图

随机推荐