文档章节

第一个swift程序:计算器,不到100行代码呀,简单吧!

pengyouya123
 pengyouya123
发布于 2014/06/21 19:34
字数 259
阅读 1012
收藏 9

要多简单有多简单, 不到100行代码就实现了一个计算器

//
//  ViewController.swift
//  Calculator
//
//  Created by purkylin on 14-6-19.
//  Copyright (c) 2014年 Purkylin. All rights reserved.
//

import UIKit

extension String
{
    // subscript operator override
    subscript(index:Int) -> Character?
    {
        var cur = 0
        for c in self {
            if cur == index {
                return c
            }
        }
        // return nil
        let ret:Character?
        return ret
    }
}


class ViewController: UIViewController {
    var operand1: Int = 0;  // left operand
    var operand2: Int = 0;  // right operand
    var operator: Character = "#";  // operator:+-*/=

    @IBOutlet var resultLabel : UILabel = nil   // output result
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    @IBAction func onClick(sender : UIButton) {
        println("Click" + sender.titleForState(UIControlState.Normal));
        var label = sender.titleForState(UIControlState.Normal);
        var c:Character = label[0]!
        switch c{
        case "+","-","*","/":
            operator = c
        case "=":
            var result = 0
            switch operator {
            case "+":
                result = operand1 + operand2
            case "-":
                result = operand1 - operand2
            case "*":
                result = operand1 * operand2
            case "/":
                result = operand1 / operand2
            default:
                break
            }

            resultLabel.text = "\(result)"
            // clear status
            operator = "#"
            operand1 = result
            operand2 = 0
            break
        default:
            if operator=="#" {
                let tmp = label.toInt()!
                operand1 = operand1*10 + tmp
                resultLabel.text = "\(operand1)"
            }
            else {
                let tmp = label.toInt()!
                operand2 = operand2*10 + tmp
                resultLabel.text = "\(operand2)"
            }
        }
    }

    // 其实这个ACTION可以不单独提出来,都放到ONCLICK函数里处理
    @IBAction func clearClick(sender : UIButton) {
        operand1 = 0
        operand2 = 0
        operator = "#"
        resultLabel.text = "0"

    }
}


© 著作权归作者所有

上一篇: msgpack使用
下一篇: msgpack使用
pengyouya123
粉丝 1
博文 2
码字总数 775
作品 0
哈尔滨
私信 提问
Swift 教程:快速入门

更新于8/5/14:下面文章是基于 Xcode6-beta 5环境。 Swift是Apple公司今年WWDC发布的新语言。为了这门新语言,Apple发布了Swift参考指南(Swift reference guide)这本书,我强烈推荐这本书。...

totogo2010
2014/10/22
0
0
Swift封装 - 计算器开发

image.png 前言: 师弟要毕业设计,就敲了swift版的计算器给他参考下。现在把代码放上来,通过这个计算器,可以学习简单的封装:将逻辑与界面分离并提供接口的编程方式,这也是我们学习面向对...

DWade_Coding
2017/11/10
0
0
10个最佳的 Swift 教程实例

Swift 是一门相对比较新的编程语言,深受广大苹果社区开发者的喜爱。在短短不到一年的时间,很多很多开发者已经转向使用 Swift 编程语言了。苹果开发者们接受 Swift,纯粹是因为 Swfit 更加先...

noeticforce
2015/12/09
17.2K
6
理解Swift中Optional类型-有和无的哲学

原文连接:http://blog.barat.cc/ios/understanding-swift-optional/ nil的遗憾 当某个变量或表达式没有任何内容时,在Objective-C中可以使用来表示。在Objective-C中是一个「野孩子」,voi...

巴拉迪维
2015/11/19
1K
9
使用swift在sprite中显示圆角UIButton按钮

我对objective-C不是很熟,UIKit以前没有用过,SpriteKit也只看了遍教程,然后看了一遍swift语言教程,此时开始编写这个程序,所以遇到的问题比较小儿科,解决方法也是曲线救国,希望有高人指...

火镜先生
2014/07/12
6.5K
8

没有更多内容

加载失败,请刷新页面

加载更多

linux查询日志命令总结

【背景】 排查线上环境问题,少不了去线上查日志。而使用什么命令,能快速准确地查到我们需要查找地日志信息,也是我们需要掌握的一项技能。 【命令】 Linux查看命令有多种:tail,head,cat...

chen-chen-chen
15分钟前
1
0
net/http 接收文件

代码展示,如何使用golang 自带net/http,将Form表单中提交上来的文件,指定位置保存。 ReadHtmlFile OutHtml(html网页,表单测试代码使用) SaveFile (处理提交文件) package mainimport...

听夜深窗外风
19分钟前
1
0
c++ 强制类型转换

强制类型转换 p545

天王盖地虎626
22分钟前
2
0
再读Golang中的异常处理

一起重温Golang中的异常处理啊😸 1.Golang语言中没有其他语言中的try...catch...语句来捕获异常和异常恢复 2.在Golang中我们通常会使用panic关键字来抛出异常,在defer中使用recover来捕获...

Andy-xu
41分钟前
7
0
TiDB 最佳实践系列(三)乐观锁事务

作者:Shirly TiDB 最佳实践系列是面向广大 TiDB 用户的系列教程,旨在深入浅出介绍 TiDB 的架构与原理,帮助用户在生产环境中最大限度发挥 TiDB 的优势。我们将分享一系列典型场景下的最佳实...

TiDB
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部