swift - 如何使我的 if 语句更有效率?

标签 swift if-statement

<分区>

为应用程序编写一些快速代码,虽然它运行良好,但我不禁认为它很丑陋并且可以改进,我仍然是新手并且一直在寻找改进我的代码的方法所以任何帮助表示赞赏.在上下文中,它用于 slider 和几个标签。

    var value1 = Int (sender.value)

    value1text.text = "\(value1)"

    var value2:Int

    if value1 <= 5 {
        endText.text = "\(7 - value1)"
    } else if value1 == 6 {
        value1 = 2
        value2 = 6
        endText.text = "\(value1)/\(value2)"
    } else if value1 == 7 {
        value1 = 2
        value2 = 5
        endText.text = "\(value1)/\(value2)"
    } else if value1 == 8 {
        value1 = 2
        value2 = 4
        endText.text = "\(value1)/\(value2)"
    } else if value1 == 9 {
        value1 = 2
        value2 = 3
        endText.text = "\(value1)/\(value2)"
    } else if value1 == 10 {
        value1 = 2
        value2 = 2
        endText.text = "\(value1)/\(value2)"
    }

我的变量在我的应用程序中命名得更好,只是重命名以便于阅读(希望如此)。

最佳答案

使用 Switch statement .

var value1 = Int(sender.value) //TODO: Give me a better name!

value1text.text = String(value1) //Don't use String interpolation solely for conversion

switch (value1) {
case Int.min...5:
    endText.text = String(7 - value1)
case let x where 6...10 ~= x:
    value1 = 2
    value2 = 12 - x
    endText.text = "\(value1)/\(value2)"
default:
    fatalError("What happens now?")
}

第二种情况的更简单/更好的实现,感谢 Sulthan :

case 6...10:
    value2 = 12 - value1
    value1 = 2
    endText.text = "\(value1)/\(value2)"

关于swift - 如何使我的 if 语句更有效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38576281/

相关文章:

Java:无法正确搜索数组

javascript - 从函数中获取变量的值

python - 为什么 != 无法在 Python 中检查整数

swift - Firebase 检索数据,返回 FATAL ERROR Index Out of Range

ios - UICollisionBehavior 和 UIGravityBehavior 无法按预期与 DispatchQueue 一起工作

ios - 有没有在viewDidLayoutSubviews之后调用的方法?

ios - Alamofire 超时不起作用

ios - 如果输出大于某个数字则打印行

swift - Xcode 如何成功访问程序无法访问的数据?

java - 第一个 do-while 循环无法正常运行