A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 任增涛 黑马帝   /  2012-2-10 19:14  /  3580 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我对什么时候使用三目运算符和什么时候使用if还是有点不太理解,麻烦详细解释一下

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1 请把求助改成已解决 谢谢合作

查看全部评分

9 个回复

倒序浏览
本帖最后由 许涛 于 2012-2-10 19:41 编辑

三元运算符的利弊

利:三元运算符,可以简化if...else代码,
如,方法返回语句中就常用三元运算符,代替多次判断语句

弊:三元运算符,首先是一个运算符,而运算完必须有一个输出结果
如果是直接打印则不能使用三元运算符,有一定局限性,if语句则没有限制

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
<表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果.
采用三目运算符可以简化表达式,而且更高效,但是不适合于复杂的表达式。如果程序只需要判断一次,这时使用if条件句即可。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
我觉得这个没有必要太深究。三目运算符: boolean d = a>b?true:false  。我认为在一般情况下,如果需要判断的条件过于罗列可以使用if···else语句。在相同条件情况下,例如return 能够直接返回时还是用 三目运算符比较简单而且实用。我这只能因情况而定。
回复 使用道具 举报
三目运算的格式   a=b?d:c  b是个布尔类型的值  b为true  a的取值为d    b为false a的取值为c
三运算可以用来取代简单的if(){}else{}
实际应用中使用的情况可以初步判断一个人的编程水平(我做过PHP,感觉是这样的)

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
三目运算符只是在处理有两种选择的情况下才选择的一种简写方式,所以不必过于在意该选哪个。
回复 使用道具 举报
戴振良 黑马帝 2012-2-10 21:42:47
7#
从三元运算符的语法可以看到只能返回两个数据中的一个,这很好理解呀,如果你只有两种数据,而且要反回其中一个,这时用3元运算符是比较方便的,因为三元运算符这是因为这样才设计出来的,比如:
1、让一个数反复为0、1,代码int x=0;while(true){x= x==0 ? 1:0;}
2、让一个数反复的为真假,代码boolean b=false;while(true){b= b==true ? false:true;}
3、String contry="中国";String person="中国人";person= contry=="中国" ? "中国人":"外国人";
……以此类推,总是就是返回两种答案中的一种。
而其他的情况你则可以使用if语句,或者switch语句。具体看情况,现在你只要知道它们的功能各有各的优缺点就行了,当随着你的学习不断深入,敲的代码多了,你慢慢的就会知道具体该用哪个选择结构了。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
吴超 金牌黑马 2012-2-10 22:15:44
8#
本帖最后由 wuchao2877 于 2012-2-10 22:17 编辑

三元运算 比较简洁
而if……else比较直观
回复 使用道具 举报
吴超 金牌黑马 2012-2-10 22:17:45
9#
本帖最后由 wuchao2877 于 2012-2-10 22:18 编辑

觉得三元比较好用
回复 使用道具 举报
三目运算符比较简洁。但是适用于不太复杂的情况。像个小手枪
而if语句则可以使用于各种情形。像冲锋枪。{:soso_e113:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马