我一直有疑问,但找不到一个确定的答案。在什么情况下我应该使用'if'或'switch'语句?有什么区别?
例如,我可以这样做:
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
switch (buttonIndex) {
case 0:
//Stuff
break;
case 1:
//Stuff
break;
default:
break;
}
//OR
if (buttonIndex == 0) {
//Stuff
}
if (buttonIndex == 1) {
//Stuff
}
}
这只是一个例子,但我相信在不同的情况下,它会有不同的影响。
switch
理论上可能更快。但如果只有几个情况,这并没有太大的区别。 - mruegswitch
执行所需的时间为O(1),而if ... else if ... else if ...
的执行时间将是O(n),其中n是条件的数量。 其中一个原因是,在if ... else
结构中,每次命中都必须评估条件,而switch
的case
则是表查找。 - Beltalowda