黑马程序员技术交流社区

标题: 三目运算符与if [打印本页]

作者: 任增涛    时间: 2012-2-10 19:14
标题: 三目运算符与if
我对什么时候使用三目运算符和什么时候使用if还是有点不太理解,麻烦详细解释一下
作者: 许涛    时间: 2012-2-10 19:37
本帖最后由 许涛 于 2012-2-10 19:41 编辑

三元运算符的利弊

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

弊:三元运算符,首先是一个运算符,而运算完必须有一个输出结果
如果是直接打印则不能使用三元运算符,有一定局限性,if语句则没有限制
作者: 林铁柱    时间: 2012-2-10 19:51
<表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果.
采用三目运算符可以简化表达式,而且更高效,但是不适合于复杂的表达式。如果程序只需要判断一次,这时使用if条件句即可。
作者: 魏腾飞    时间: 2012-2-10 19:53
我觉得这个没有必要太深究。三目运算符: boolean d = a>b?true:false  。我认为在一般情况下,如果需要判断的条件过于罗列可以使用if···else语句。在相同条件情况下,例如return 能够直接返回时还是用 三目运算符比较简单而且实用。我这只能因情况而定。
作者: 梅雄新    时间: 2012-2-10 19:54
三目运算的格式   a=b?d:c  b是个布尔类型的值  b为true  a的取值为d    b为false a的取值为c
三运算可以用来取代简单的if(){}else{}
实际应用中使用的情况可以初步判断一个人的编程水平(我做过PHP,感觉是这样的)


作者: 吴亨    时间: 2012-2-10 19:56
三目运算符只是在处理有两种选择的情况下才选择的一种简写方式,所以不必过于在意该选哪个。
作者: 戴振良    时间: 2012-2-10 21:42
从三元运算符的语法可以看到只能返回两个数据中的一个,这很好理解呀,如果你只有两种数据,而且要反回其中一个,这时用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语句。具体看情况,现在你只要知道它们的功能各有各的优缺点就行了,当随着你的学习不断深入,敲的代码多了,你慢慢的就会知道具体该用哪个选择结构了。

作者: 吴超    时间: 2012-2-10 22:15
本帖最后由 wuchao2877 于 2012-2-10 22:17 编辑

三元运算 比较简洁
而if……else比较直观

作者: 吴超    时间: 2012-2-10 22:17
本帖最后由 wuchao2877 于 2012-2-10 22:18 编辑

觉得三元比较好用
作者: 宋枢浩    时间: 2012-2-10 23:55
三目运算符比较简洁。但是适用于不太复杂的情况。像个小手枪
而if语句则可以使用于各种情形。像冲锋枪。{:soso_e113:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2