您的位置:首页 > 移动开发 > Swift

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

2014-06-21 00:00 429 查看
摘要: 使用swift语言写的一个简易计计算器

要多简单有多简单, 不到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"

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: