当前位置: 首页 > 面试题库 >

Swift中的Switch语句

甄飞飙
2023-03-14
问题内容

我正在学习Swift的语法,想知道为什么下面的代码无法按我期望的那样工作:

for i in 1...100{

    switch (i){
    case 1:
        Int(i%3) == 0
        println("Fizz")
    case 2:
        Int(i%5) == 0
        println("Buzz")
    default:
        println("\(i)")
    }  
}

我想每次将数字除以3(3、6、9、12等)时都打印Fizz,并且每次将其除以5时都打印Buzz,那么缺少哪一块拼图?

注意:我确实使用以下方法解决了问题:

for ( var i = 0; i < 101; i++){

    if (Int(i%3) == 0){
        println("Fizz")
    }   else if (Int(i%5) == 0){
        println("Buzz")
    }   else {
        println("\(i)")
    }   
}

我想知道如何使用Switch解决此问题。谢谢。


问题答案:

FizzBu​​zz游戏的通常规则 是用“
Fizz”替换每个3的倍数,用“ Buzz”替换每个5的倍数, 用“ FizzBu​​zz” 替换3 5的每个倍数。

这可以通过在元组上使用switch语句来完成(i % 3, i % 5)。请注意,这_意味着“任何值”:

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)
    }
}


 类似资料:
  • Swift 条件语句 switch 语句允许测试一个变量等于多个值时的情况。 Swift 语言中只要匹配到 case 语句,则整个 switch 语句执行完成。 语法 Swift 语言中 switch 语句的语法: switch expression { case expression1 : statement(s) fallthrough /* 可选 */

  • 问题内容: 在Swift中,您可以使用’is’检查对象的类类型。如何将其合并到“ switch”块中? 我认为这是不可能的,所以我想知道解决此问题的最佳方法是什么。 问题答案: 您绝对可以在一个块中使用。请参阅Swift编程语言中的“对Any和AnyObject进行类型转换”(尽管当然不限于此)。他们有一个广泛的例子:

  • 本文向大家介绍Swift编程中的switch...case语句实例解析,包括了Swift编程中的switch...case语句实例解析的使用技巧和注意事项,需要的朋友参考一下 Swift中的switch...case语句可以判断对象类型, Objective-C中则必须是整数。 不可以穿透,可以不写break, 因为不能穿透所以不能这么写 只能这么写 不能不写default default位置只能

  • 问题内容: 我熟悉Swift中的语句,但想知道如何用来替换这段代码: 问题答案: 这是一种方法。假设是或其他,则可以选择将操作数分配给新变量。这样,您就可以使用关键字来对其进行范围划分: 可以简化一下: 您还可以完全避免关键字与范围匹配:

  • 本文向大家介绍Java中的Switch语句,包括了Java中的Switch语句的使用技巧和注意事项,需要的朋友参考一下 switch语句允许针对值列表对变量进行相等性测试。每个值称为一个案例,并针对每种情况检查要打开的变量。首先让我们看一下语法- 以下是适用于Java中switch语句的规则- switch语句中使用的变量只能是整数,可转换整数(字节,短整数,字符),字符串和枚举。 开关内可以有任

  • 本文向大家介绍浅谈Swift编程中switch与fallthrough语句的使用,包括了浅谈Swift编程中switch与fallthrough语句的使用的使用技巧和注意事项,需要的朋友参考一下 在 Swift 中的 switch 语句,只要第一个匹配的情况(case) 完成执行,而不是通过随后的情况(case)的底部,如它在 C 和 C++ 编程语言中的那样。以下是 C 和 C++ 的 swit