将我的代码转换为更好的Swift,就像FizzBu​​zz响应的答案一样

Geo*_*Lee 2 swift swift2

我在做一些编程时昨晚在互联网上搜索,我注意到有一个有趣的测试,雇主有时会用它来测试程序员,看看他们是否真的可以将代码应用于现实世界的问题.它被称为FizzBu​​zz测试,它的工作原理如下.

"编写一个打印数字1到100的程序.但是,对于3的倍数,打印"Fizz"而不是数字和5的倍数,打印"Buzz".对于数字是三和五的倍数打印" FizzBu​​zz ""

现在,我坐下来很快就想出了这个代码,我把它放在了viewDidLoad方法中:

for i in 1...100 {
            if i % 3 = 0 && i % 5 == 0 {
                print("FizzBuzz")
            } else if i % 3 == 0 {
                print("Fizz")
            } else if i % 5 == 0 {
                print("Buzz")
            } else {
                print(i)
            }
        }
Run Code Online (Sandbox Code Playgroud)

而且,虽然这符合要求,但我觉得非常不满意使用它作为我的解决方案(对我来说似乎太简单和基本).

我最近读过Matt Neuburg的书"iOS 9编程基础与Swift"(这本书让我大开眼界,在很多层面上睁开眼睛).我试图尽可能地使用Swift-y(传递函数等)而着迷.然后,我开始意识到我真的不知道如何改进这段代码.

因此,我转向Swift社区,希望您能够更好地了解有关FiizBuzz测试问题的最复杂的Swift答案.

我正在拼命地尝试改进我的Swift编程,并希望了解一种更好的Swift-y编程方法.

Col*_*aff 7

按照Dan 在评论中的链接,我提出了:

for i in 1...100 {
  switch (i%3, i%5) {
  case (0,0): print("FizzBuzz")
  case (0,_): print("Fizz")
  case (_,0): print("Buzz")
  default: print(i)
  }
}
Run Code Online (Sandbox Code Playgroud)

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBu​​zz
......