Swift
实战一个简单的素数计算器demo
本期我们来介绍如何用storyboard来实现一个素数计算器demo,storyboard可以明确地知道界面上的组件与代码的关系,而且比起仅用代码写要方便不少。
No.1
制作一个简单的界面
制作一个简单的界面
我们首先要使用storyboard来绘制一个界面,可以使用Label、TextField与Button来完成一个简单界面,可以在的TextField中的placeholder里添加些字,这样可以使用户知道这里应该填些什么,如上所示。
No.2
定义函数
定义函数
现在要定义一个判别用户所输入的数字是否是一个素数的函数,定以一个输入一个整型数字,输出一个字符串的isPrime函数。我们都知道,素数是一个大于1的自然数,除了1与其本身外,不能被其他自然数整除。知道了素数的定义后我们可以开始写一个isPrime的函数。
1. 首先先使用一个if来判别是否是大于1的自然数,是的话则进行下一步判断,不是的话则返回该数不是素数的字符串
2. 下一步要使用for循环让其与每一个比其小的自然数求余,用if来判别如果余数是0则说明能被其他数整除,则返回该数不是素数的字符串,如果不是则返回该数是素数的字符串。
No.3
连接起来
连接起来
我们现在设计完了界面,也定义了函数,现在将它们连起来。可以将界面上的三个组件TextField、Label、Button分别拖入代码中,并分别起名为,numberInput、displayer、JudgerPrime。
1. 并添加一行var number:Int?
这个number是来接收用户所输入的东西的,那为什么要写一个问号呢?这是因为我们不确定用户是否真的会输入一个整型的数字,用户可能只打了一个空格或者小数、字符串等,所以我们在这里多加了一个“?”。
2. 然后我们要在Button处来执行我的操作,我们先让number获得numberInput的值
3. 我们会发现这里报了错,从中我们可以知道,TextField里的类型是字符串的可选类型,所以我们要先解包再转为整形的数。
但是这仍然不够,如果用户输入的是一个点,或者一个空格,那么number就是空值,会导致我们定义的函数不可用,所以我们要在函数执行前消除这个问题。
4. 我们使用guard number != nil来避免,用return来使其直接结束,不进行后续操作。
5. 这样,用户输入的不是整型的情况就被我们规避了,可以正常地调用刚刚写好的函数了,使用displayer.text = isPrime(number: number)调用我们的函数。
6.此时我们还是会发现报错,这是为什么呢?因为number是个可选类型,之前规避了nil的情况,所以在这里的number一定不是空值,可以放心地用“!”解包。
7.最后,我们一个素数计算器就这么实现啦
可以随便试几个数:
怎么玩也玩不坏
No.4
做个简单的对比
这次我又用了纯代码的方式来实现这个素数计算器的功能
是不是瞬间感觉storyboard简便多了
那么本期关于素数计算器的实现就介绍到这里啦,我们下期再见~
撰稿:Carrot
图文编辑:Carrot