Swift小白的第四课-写个简单计算器吧

我们这节课的任务:写一个简单的乘法器 - 就是把两个输入的数字乘起来显示给用户

上节课我们通过做一个简单按钮交互,接触到了很简单的元件连接和响应,这节课我们的深入一些,把连接和反馈更加深入一点

1. 找到我们的Main.Storyboard. 参考以前课程里讲到的元件添加方式(打开元件库 -> 将元件找到 -> 拖到Storyboard的View上) 

         拖入4个Label元件(一般文本的展示就使用Label原件就可以了)分别将Label的文字改为:被乘数、乘数、计算结果和 0 (0那个Label我们拖长一点,我们将用这个Label来显示计算的结果,太短了,一会儿结果长一点就显示不下了,为了美观,我把它的默认值设置成了0,如果你愿意,你把它设置成空也行)

        拖入2个TextFiled元件(就是输入框,用于接受用户输入的字符的)分别把他们放到“被乘数”和“乘数”两个Label后边,分别用来接收用户输入的乘数和被乘数

        拖入1个Button元件(干嘛用的?你自己想([笑])随便你把它放哪儿吧,只要你能找到就行(细心的同学发现了我这个按钮怎么和默认的按钮不一样,下边就讲)

2. 这一步:我们就是把Button显示样式设置一下:选中你要设置样式的元件,然后切换到元件属性设置页面,去自定义你想要的样式吧(这些属性都是什么意思,都拿来干嘛的,我就不讲了,你自己试着设置一下就知道了,反正也不会爆炸,或者问“百度”就好了)

3. 接下来,我们把需要跟系统或者人交互的元件连接一下,不然系统运行的时候,程序是不会认识,也不会响应你的命令的

            3.1 打开编辑器双视图,开始连接元件(我们这里边需要跟系统或者用户交互的元件有:2个用来接收用户输入数据的TextField、1个显示结果的Label和1个“开始计算”的Button)

            3.2 其中TextField、和显示结果的Label我们一会儿代码需要叫他们的名字,为了让程序找他们的时候能认识他们,我们通过Outlet连接这些元素(具体怎么连接元素,可以参考 第三课 的内容, 这里只说明连接时的设置)、依次将三个元素连接

        3.3 “开始计算”这个按钮的链接,我们通过Action链接,因为我们需要针对用户的点击行为(Action)作出反应,不仅仅是让系统认识它就好了(怎么连接Button,可以参考 第三课 的内容, 这里只说明连接时的设置),这里的Type,你依然可以选“Any”,目前仍然是没有区别的,我自己选择了“UIButton”


4. 连接完以后,你可以看到这些成功链接的元素,在代码中我们能够很清晰的看到3个@IBOutlet 和 1个@IBAction (有1个@IBAction不是我们本节课的内容,忽略它)

细心的同学发现了这两种很明显的区别,就是@IBOutlet的名字前是var 而 @IBAction的名字前是 func (var 是用来定义变量的,用处就是让程序知道它,func是方法,用处就是告诉程序怎么做,具体的定义,感兴趣的同学可以自行“百度”关键词“swift var”,“swift func”去学习,我们课程不学习它,至少目前我们还用不着学习,也能完成我们想要完成的任务)

5. 连接完成了,我们接下来开始写代码啦!!!写什么呢,写我们的计算器呀

怎么写呢:第一步把用户输入的第一个数取出来,第二步把用户输入的第二个数取出来,第三步把这两个数“乘”起来,第四步把计算的结果显示给用户(思路可以参考怎么把大象放冰箱里)

思路有了,上代码:

代码解读:

firstInputTextField.text // 获取firstInputTextField这个元件的“值”(value),这个值在这个元件的text属性里,所以我们用这个代码去获取)

细心的同学注意到了在获取出值的代码前有句“let firstNum = xxxxxx “:

             这里的“let 和上边的提到的var 都是用来声明变量的,区别是let声明的变量的值不变,var声明的变量是可以变变量的值的,具体区别可以百度“let 和 var的区别”),其实我们这行代码就是干了这么一件事:”将取出来的数据给新声明的变量firstNum)“

            这里的” = “ (不再是数学里的“等于”,而是“赋值”,意思就是把“ = ” 右边的值 指定给 左边,让左边的值变成 右边的值,具体请百度“赋值”)

firstInputTextField.text ?? “0” //这段代码的中的 ?? “0” 意思就是,如果firstInputTextField.text没有值(即为nil)时,那么将“0”给 firstNum。从而避免变量没有值的情况

Int(firstNum)! // 这段代码和String(result)的意思一样,就是强制要求把括号里的变量的数据类型转换成Int或者String类型,这样才能使用,至于最后的”!”这个是Swift中的“解包”命令,意思就是:“告诉程序,请忽略firstNum为nil的可能,请解包拿数据吧”(但是如果你用了”!”,而firstNum又为nil,则程序就会死给你看(崩溃)),对应的“!”,还有一个命令“?”, 可以参考这个解释:https://www.cnblogs.com/luanmage/p/5197605.html,关于“包”的概念,你可以百度“Swift 封包和拆包“去学习了解,我们不细讲,我们这里已经确定可定不会为nil,所以我们用“!”即可;

   6. 试一试,Command + R运行一下,看看计算器能不能用了,输入10 和 20,结果200,完美!!

你可能感兴趣的:(Swift小白的第四课-写个简单计算器吧)