if else与if return的选择问题

这两种写法可以互换,如下:

if ([responseDict[@"result"] boolValue] == false) {
    [CQHud showToastWithMessage:responseDict[@"msg"]];
    return;
}

/// code

等效于:

if ([responseDict[@"result"] boolValue] == false) {
    [CQHud showToastWithMessage:responseDict[@"msg"]];
} else {
    /// code
}

对于上面两种情况,我的做法是:if代码块中的代码比较少时就用if return。

实际开发中你们是怎么选择的?选择的理由是什么?

阅读 3.4k
3 个回答

看下面代码的逻辑吧。。

如果你的 //code 只是在 else 里,一般说明这是 if 的另一种情况,写在里面比较好,合乎逻辑。

但是如果这个 if 只是个判断,遇 false 就return,不用走下面的逻辑,那么 写在外面比较好。

你看下以下代码:

if (xxx == nil) {
    NSLog(@"xxx must not is nil");
    return;
}
// code....

if (xxx) {
    NSLog(@"xxx not is nil");
    // code....
}else {
    NSLog(@"xxx is nil");
    // code....
}

第一种吧,理由:看着舒服

第二种吧,它们是一对儿

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏