在switch中使用break语句

 手机用户2602924833 发布于 2023-01-10 09:57

以下是在switch中使用break语句的给定示例:

let numberSymbol: Character = "?"  // Simplified Chinese for the number 3
var possibleIntegerValue: Int?
switch numberSymbol {
case "1", "?", "?", "?":
    possibleIntegerValue = 1
case "2", "?", "?", "?":
    possibleIntegerValue = 2
case "3", "?", "?", "?":
    possibleIntegerValue = 3
case "4", "?", "?", "?":
    possibleIntegerValue = 4
default:
    break
}
if let integerValue = possibleIntegerValue {
    println("The integer value of \(numberSymbol) is \(integerValue).")
} else {
    println("An integer value could not be found for \(numberSymbol).")
}

possibleIntegerValueoptional Int,所以我真的不觉得这是在交换机使用中断的一个更好的例子.而不是休息,甚至possibleIntegerValue = nil也有效.

let numberSymbol: Character = "?"  // Simplified Chinese for the number 3
var possibleIntegerValue: Int?
switch numberSymbol {
case "1", "?", "?", "?":
    possibleIntegerValue = 1
case "2", "?", "?", "?":
    possibleIntegerValue = 2
case "3", "?", "?", "?":
    possibleIntegerValue = 3
case "4", "?", "?", "?":
    possibleIntegerValue = 4
default:
    possibleIntegerValue = nil
}
if let integerValue = possibleIntegerValue {
    println("The integer value of \(numberSymbol) is \(integerValue).")
} else {
    println("An integer value could not be found for \(numberSymbol).")
}

所以在这种情况下break根本不需要.谁能给我一个在交换机中使用中断的正确例子,我故意忽略一些情况?

这本书说:

此行为可用于匹配和忽略switch语句中的一个或多个案例.由于Swift的switch语句是详尽的并且不允许空案例,因此有时需要故意匹配并忽略案例以使您的意图明确.您可以通过将break语句写为要忽略的案例的整个主体来完成此操作.当这种情况与switch语句匹配时,case中的break语句会立即结束switch语句的执行.

Nate Cook.. 41

当您不需要具有任何实际功能的情况时,可以使用breaka中的语句switch,但希望包含它以使您的逻辑更容易或更清晰.例如,假设您要使用switch语句来确定给定年份是否为闰年.(这是一个人为的例子.)

func isLeapYear(year: Int) -> Bool {
    switch (year) {
    case let x where (x % 100) == 0 && (x % 400) != 0:
        break
    case let x where (x % 4) == 0:
        return true
    default:
        break
    }

    return false
}

isLeapYear(2014)    // false
isLeapYear(2000)    // true
isLeapYear(1900)    // false

switch内部声明的第一个案例isLeapYear允许您捕获年份可被100整除且不能被400整除的情况,因为这些是特殊的非闰年.break在这种情况下的陈述意味着"什么都不做".

1 个回答
  • 当您不需要具有任何实际功能的情况时,可以使用breaka中的语句switch,但希望包含它以使您的逻辑更容易或更清晰.例如,假设您要使用switch语句来确定给定年份是否为闰年.(这是一个人为的例子.)

    func isLeapYear(year: Int) -> Bool {
        switch (year) {
        case let x where (x % 100) == 0 && (x % 400) != 0:
            break
        case let x where (x % 4) == 0:
            return true
        default:
            break
        }
    
        return false
    }
    
    isLeapYear(2014)    // false
    isLeapYear(2000)    // true
    isLeapYear(1900)    // false
    

    switch内部声明的第一个案例isLeapYear允许您捕获年份可被100整除且不能被400整除的情况,因为这些是特殊的非闰年.break在这种情况下的陈述意味着"什么都不做".

    2023-01-10 10:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有