話說某君在學習IPHONE編程的第一還是第二課就被要求試著製作計算機APP,
當時除了一些簡單的Object外,
就沒有更多的關於Swift的認識啦,
當時還是靠著其他編程的基礎硬生生寫出來了,
現在回想一下,
這不正是計算機最初階的雛形嗎?
正好可讓有興趣的各位實際練習一下哦~
現在提供一下某君在這實例中用到的一些程式碼、概念等,
用上這些應該就能推出最後的結果了,
如果不行的話,是不是沒有看前幾篇教程呢?
上面的是上次完成的Layout,[iOS][Xcode][Swift]iPhone手機編程--簡易計算機製作 第一彈 -- 適配各個型號手機、平板屏幕的方法(Constraint, Auto Layout, StackView)
在此基礎上,你還要知道:
Label上的是文字,如果要作計算的話,需要轉換成數字。 --Double(x), Int(x), Float(x)
其他的應該都可以在某君的其他教程上找到,簡介一下:
1. 如何定義變數?
2. 基本流程控制
如此便能製作成功啦,教程完畢!!
哈哈,說笑啦,
至少還要把程式碼貼出來吧~
// ViewController.swift
// ViewController程式碼部分
// Created by cm420-07-2020-c on 07/07/2020.
// Copyright © 2020 cpttm. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
var str="" //定義一個空字串變數來存放顯示於Label上的數字
var numA:Double?
var numB:Double?
var num:Double? //定義三個小數變數
var sym=0 //定義一個變數存放運算符
@IBOutlet weak var display: UILabel! //將Label拖曳至程式,並命名為display
override func viewDidLoad() { //並沒有預先執行的程式
super.viewDidLoad()
// Do any additional setup after loading the view.
}
//將按下1的Button的動作命名為clickNumber1,並且在Label的文字後加上1,即若display.text=""時,現在就變成1;若本來display.text=232,現在就變成2321
//(這就是上面提到的Label的text是純文字,不能直接運算,所以不會變成233。等同於str1="Happy " str2="Birthday" str1+str2="Happy Birthday")
//由於當時並不知道有獲取button上文字的方式,只可以為每個按鈕做一次相關步驟,是有點蠢啦,不過也是最好理解的方法
@IBAction func clickNumber1(_ sender: UIButton) {
str+="1"
display.text = str
}
@IBAction func clickNumber2(_ sender: UIButton) {
str+="2"
display.text = str
}
@IBAction func clickNumber3(_ sender: UIButton) {
str+="3"
display.text = str
}
@IBAction func clickNumber4(_ sender: UIButton) {
str+="4"
display.text = str
}
@IBAction func clickNumber5(_ sender: UIButton) {
str+="5"
display.text = str
}
@IBAction func clickNumber6(_ sender: UIButton) {
str+="6"
display.text = str
}
@IBAction func clickNumber7(_ sender: UIButton) {
str+="7"
display.text = str
}
@IBAction func clickNumber8(_ sender: UIButton) {
str+="8"
display.text = str
}
@IBAction func clickNumber9(_ sender: UIButton) {
str+="9"
display.text = str
}
@IBAction func clickNumber0(_ sender: UIButton) {
str+="0"
display.text = str
}
@IBAction func clickNumberDot(_ sender: UIButton) { //這個是小數點的按鈕
str+="."
display.text = str
}
//接下來是運算符部分,只要按下運算符,就把之前的數字儲存成numA,並把字串歸0,方便之後的儲存新的數字
//由於符號始終不及數字方便輸入和識別,某君索性把1代替+、2代替-,如此類推
@IBAction func clickAdd(_ sender: UIButton) {
numA=Double(str)
str=""
sym=1
}
@IBAction func clickMinus(_ sender: UIButton) {
numA=Double(str)
str=""
sym=2
}
@IBAction func clickMultiply(_ sender: UIButton) {
numA=Double(str)
str=""
sym=3
}
@IBAction func clickDivide(_ sender: UIButton) {
numA=Double(str)
str=""
sym=4
}
//當按下=的Button時就會作運算,將現存的數字存為numB,並用Switch Case判斷是+-*/哪一個,並作相關運算
@IBAction func clickEqual(_ sender: UIButton) {
numB=Double(str)
if let a = numA{
if let b=numB{ //這裡是Optional的判斷部分,確定numA和numB都有值
switch sym {
case 1:
num=a+b
case 2:
num=a-b
case 3:
num=a*b
case 4:
num=a/b
default:
num=numB
}
}else{
print("numB error.")
}
}else{
print("numA error.")
}
if let n=num{ //運算完畢之後將數字轉回文字並顯示在Label上,同時將符號歸0
display.text=String(n)
str=String(n)
sym=0
}
else{
print("num error.")
}
}
//當按下C的Button時就會一切歸0
@IBAction func clickC(_ sender: UIButton) {
str=""
display.text=str
sym=0
numA=0.0
numB=0.0
}
}