use*_*487 9 fizzbuzz switch-statement swift
我正在做这个问题集"FizzBuzz",我的switch语句给了我一些问题,这是我的代码:
func fizzBuzz(n: Int) -> String {
switch n {
case n % 3 == 0: print("Fizz")
case n % 5 == 0: print("Buzz")
case n % 15 == 0:print("FizzBuzz")
}
return "\(n)"
}
Run Code Online (Sandbox Code Playgroud)
如果你可以提供指针/提示,而不是给我正确的代码,那就会膨胀:D我更喜欢自己解决它,但是一些提示可以让我走出这个洞.
Leo*_*bus 12
尝试使用"case let where":
func fizzBuzz(n: Int) -> String {
let result: String
switch n {
case let n where n % 3 == 0 && n % 5 == 0:
result = "FizzBuzz"
case let n where n % 3 == 0:
result = "Fizz"
case let n where n % 5 == 0:
result = "Buzz"
default:
result = "none"
}
print("n:", n, "result:", result)
return result
}
Run Code Online (Sandbox Code Playgroud)
mat*_*att 10
只有两件事是错的:
(1)你的案例是布尔表达式,所以你想要比较它们true,而不是n;
(2)您需要一个默认案例.所以:
func fizzBuzz(n: Int) -> String {
switch true {
case n % 3 == 0: print("Fizz")
case n % 5 == 0: print("Buzz")
case n % 15 == 0: print("FizzBuzz")
default: print("Shoot")
}
return "\(n)"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5841 次 |
| 最近记录: |