为了账号安全,请及时绑定邮箱和手机立即绑定

三目运算和if-else区别在哪里呢?

三目运算和if-else区别在哪里呢?

C
meowZ 2016-04-11 12:08:46
感觉前者不是更简洁吗?
查看完整描述

5 回答

已采纳
?
_潇潇暮雨

TA贡献646条经验 获得超225个赞

凡是简单的必有限制。一个判断还好,多个判断就不太好写了

查看完整回答
3 反对 回复 2016-04-11
?
K_Biao

TA贡献44条经验 获得超24个赞

If-else比三目运算?: 更快一点。

编译器处理这两者的时候是不一样的。看汇编代码会看出区别。

三目运算是先运算,再赋值!

    例如 :  

       temp = a > b ? a : b ;

       a > b ? a : b 是运算,  temp = (a > b ? a : b )是赋值。               

     而 if 语句是直接赋值 ,不存在运算,所以快了一点。

当然有些编译器也会做一定的优化,使得这两者区别没那么大。


查看完整回答
2 反对 回复 2016-04-11
?
Realank刘

TA贡献7条经验 获得超36个赞

对于简单判断,程序员总是喜欢省事点写,比如 i = i + 1写成 i += 1 或者 ++i 。当简单判断来赋值的操作,三目运算符一行可以完成,后者需要五六行甚至更多。但是当我们的判断逻辑复杂一些,或者判断以后,不仅仅用来赋值的时候,if-else的作用是三目运算符完全不可以替代的。其实三目运算符是可有可无的,但是if-else是必备。

我觉得讨论一下while和for循环是否可以去掉一个,倒是比这个问题更有可争论的地方

查看完整回答
1 反对 回复 2016-04-12
?
李昕耀

TA贡献1条经验 获得超1个赞

三目运算虽然简洁,但是略比if-else难读,if-else更加清晰

查看完整回答
1 反对 回复 2016-04-11
  • 5 回答
  • 0 关注
  • 2624 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信