关于在含return的代码块后使用else的意义及优势的疑问
关于在含return的代码块后使用else的意义及优势的疑问
嘿,这个问题问得挺接地气的!咱们先拿你贴的这段代码来唠唠:
int foo (int a) { if(a==0) { return false; } else if(a==1) { return true; } else { } return -1; }
首先得明确一个核心点:当if代码块里已经有return语句时,后面跟着的else在逻辑上是完全冗余的。因为一旦if的条件满足,函数就会直接return跳出,根本不会执行到else里的代码;而如果if条件不满足,本来就会往下执行后面的代码,加不加else对程序的运行结果没有任何影响。
那为啥还有人喜欢加else呢?大多是编码习惯的问题:
- 一部分人觉得加
else能让代码的分支结构更“直观”,读代码的时候一眼就能看出来“这是前面条件不满足时才会走的分支”,尤其是嵌套层级多的时候,感觉结构更清晰; - 但另一部分人反而觉得不加
else更好——这样能减少代码的嵌套层级,让代码更“扁平”,读起来更清爽,比如把你这段代码改成下面这样,逻辑完全没变,但看起来简洁多了:
int foo (int a) { if(a==0) { return false; } if(a==1) { return true; } return -1; }
至于性能方面?完全不用担心,现代编译器都会自动优化掉这些冗余的else,两种写法编译后的机器码是一模一样的,不会有任何性能差异。
总结下来就是:加不加else没有绝对的“优势”,更多是团队或个人的编码习惯偏好。只要代码逻辑清晰、符合团队规范,怎么写都没问题~
备注:内容来源于stack exchange,提问作者Leons Mate
相关产品推荐
相关产品推荐

