【问题标题】:Nesting if's or returning directly [closed]嵌套if或直接返回[关闭]
【发布时间】:2012-04-22 09:51:05
【问题描述】:

我参加了一门 C++ 课程,我们有一些作业要给老师看,里面有一些这样的 if 语句:

if (A != 10)
    return 1;

...snip logic ...
return 12;

他不喜欢这样,并建议我改为这样嵌套它,即使有不止一层嵌套:

if (A == 10) {
    ...snip logic ...
    return 12;
} else
    return 1;

他无法真正向我解释他为什么要那样做。所以我的问题是,是否有任何理由包含这样的 if 语句?我认为在我的函数开始时有一些提前返回的条件既容易又干净。关于为什么这些想法之一更好/更快的任何想法或想法?之后编译出来的代码有什么大的不同吗?

【问题讨论】:

  • 完全公平的问题,但不够客观,无法真正得到明确回答,因此投票结束。也就是说,这主要是风格问题。我不太喜欢第二种风格,正是因为引入了嵌套。如果我能走捷径,为什么还要等呢?
  • @GManNickG Is there any big difference in the compiled code afterwards? ,我认为这是建设性的。
  • 当你在一个团队中工作时,有必要让你的代码尽可能可读,第二种方式更容易理解
  • @IntermediateHacker:我想,虽然这不是问题的实质。我们现在可以在 cmets 中说:生成的代码没有区别。完毕。 :)

标签: c++ idioms


【解决方案1】:

当谈到编码风格时,你可以听取意见,但最好是你自己的风格。第一个解决方案对我来说看起来更干净,更容易阅读,但这毕竟只是一个品味问题。 在性能方面绝对没有区别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多