假设我有一个包含五种情况的 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
。