有没有办法在Swift开关中检查多个条件?

时间:2015-06-06 16:38:43

标签: ios swift switch-statement

在swift中,我需要进行这样的切换:

switch char {
    case "+": statement 1; statement 3
    case "-": statement 2; statement 3
 default: statement 3   
}

但是,我不想复制语句3,因为它实际上很长,所以我正在寻找一种替代方式(如果存在)以某种方式使交换机检查每种情况,并执行默认值。我到处寻找解决方案,我想它可能不存在,但因为它看起来像普通的东西,我希望同性恋者可以帮助我...

2 个答案:

答案 0 :(得分:6)

重复代码?适合当地职能的好人:

func statement3() {
    // ... lots of stuff here ...
}
switch char {
    case "+": statement 1; statement3()
    case "-": statement 2; statement3()
 default: statement3()   
}

但如果确实希望在每个案例中statement3,那么只需将其从switch语句中删除:

switch char {
    case "+": statement 1
    case "-": statement 2
 default: break   
}
statement 3

答案 1 :(得分:2)

你可以通过一个案例并跳过下一个案例以使你违约的唯一方法是重新测试条件:

switch char {
case "+": statement 1; fallthrough
case "-": if char == "-" { statement 2 }; fallthrough
default: statement 3
}

在一天结束时,老实说,看起来非常节俭。我建议您通过函数调用替换长语句,并保留上面给出的控制流程。