我从VB.NET背景来到Objective-C,其中switch
语句是Select Case
而且不需要break
语句(或者可能)。
我知道一般规则是在每个break
语句的末尾放置一个case
语句,以便执行不会“落到”下一个case
语句。
编写iOS应用时,我经常在switch
方法中使用-tableView: heightForRowAtIndexPath:
语句。基本上,我经常让我的单元格报告所需的高度,所以我最终得到switch
这样的语句:
switch (indexPath.row) {
case 0:
return ...
break;
case 1:
return ...
break;
...
default:
return ...
break;
}
我看到了this answer,这对我来说很有意义,也是我期望的答案,但这个问题是关于Java的,我想看看Objective-C是否也有同样的答案。
我还找到了this answer,它与C有关,我认为它也是Objective-C的正确答案。
那么,return
语句是专门的break
语句吗?
答案 0 :(得分:13)
没有返回语句不是专门的中断。 return导致退出函数break导致退出switch语句。如果你有回报,你不需要休息,但它们是不同的东西。
答案 1 :(得分:2)
场景背后没有魔力。这里唯一的不同之处在于,只有在休息时你才会离开开关并返回功能。所以后果是显而易见的。如果你有回归,你不需要休息,因为永远不会达到休息时间。有些IDE会灰显,指出它不是可达的代码片段。
答案 2 :(得分:1)
是的,在阅读有关switch
和return
的想法时,可以将return
语句视为专门的break
语句。
A break
is just a branch table abstraction, so as return
is,所以最终,他们将只执行一条跳转指令。