iOS/Objective-C 的 switch 语句中的fallthrough



假设我有一个包含五种情况的 switch 语句,但只调用了两个真正的方法,如下所示:

switch (condition) {
    case conditionOutcome1: 
        [self firstMethod];
        break;
    case conditionOutcome2: 
        [self secondMethod];
        break;
    case conditionOutcome3:
        [self firstMethod];
        break;
    case conditionOutcome4: 
        [self firstMethod];
        break;
    case conditionOutcome5: 
        [self secondMethod];
        break;
    default:
        break;
}

像这样将案件分组是否安全?

    switch (condition) {
    case conditionOutcome1:
    case conditionOutcome3:
    case conditionOutcome4: 
        [self firstMethod];
        break;
    case conditionOutcome2: 
    case conditionOutcome5: 
        [self secondMethod];
        break;

    default:
        break;
}

它工作正常,但我以前从未在 objective-c 中使用过它,所以我想通过保存几行代码来确保我不会引起任何问题。

谢谢!

只是添加到其他答案中,它被称为失败,您可以在此处阅读有关它的信息。

是的,这样做很好。

我以前用过它。它会停止重复代码。

是 100% 安全使用

开关(条件){

case conditionOutcome1:
case conditionOutcome3:
case conditionOutcome4: 
    [self firstMethod];
    break;
case conditionOutcome2: 
case conditionOutcome5: 
    [self secondMethod];
    break;

default:
    break; }

这始终用于要执行的具有相同操作集(重复代码)的多个case

因为所有的cases都将执行,直到遇到break

最新更新