三目运算你懂吗?懂就来看下.该如何处理
三目运算你懂吗?懂就来看下.今天无意间看到别人写的这么一句,我就晕了...return selforder order ? sel
三目运算你懂吗?懂就来看下.
今天无意间看到别人写的这么一句,我就晕了...
return selforder <= order ? selforder != order ? -1 : 0 : 1;
返回的是个int类型
我知道三目可以连着写,是从右往左运算的,但这个...咋看都不像三目.
呵呵.
谁来说明下?
[解决办法]
两个。。。嵌套的
[解决办法]
我只能说写代码的人轻松,维护代码的头痛!
[解决办法]
Java codeselforder <= order ? (selforder != order ? -1 : 0) : 1;
[解决办法]
应该是
return (selforder <= order) ? ((selforder != order) ? -1 : 0) : 1;
[解决办法]
其实 由里往外 描述更贴切
[解决办法]
[解决办法]
selforder <= order ? (selforder != order ? -1 : 0) : 1
[解决办法]
return selforder <= order ? (selforder != order ? -1 : 0) : 1;
这样应该就清楚了
最恨这样写代码的
加个括号会死么?
读的时候难读的要命
要我看到项目中有人这样写代码,直接往死里骂
[解决办法]
就像LZ想的那样(selforder <= order) ? ((selforder != order) ? -1 : 0) : 1;偶看的很纠结
[解决办法]
这东西.还是别手懒的好.
[解决办法]
[解决办法]
这年头,人们都想玩些小花活呀。真是的!对于后来人是个事儿了!
[解决办法]
[解决办法]
哪位朋友能从编译器,字节码的角度解释一下?
[解决办法]
3 再看楼主这个 selforder <= order ? selforder != order ? -1 : 0 : 1;
加上括号后是(selforder <= order) ? ((selforder != order)? -1 : 0 ): 1;
1)为什么这么加括号,我们根据关系运算符大于条件运算符,2)条件运算是右结合的
3)注意虽然是右结合的但是 算起来却是从左往右算的.所以就容易理解了.
相当于 if(selforder<=order){
if(selforder!=order)
return -1;
else retern 0;
}
else
return 1;
-------------------
够通俗了
[解决办法]
先算后面的,再算前面的,你可以用一般的数字代进去,自己试试才是最好的
[解决办法]
selforder <= order ? (selforder != order ? -1 : 0) : 1;
[解决办法]
[解决办法]
写这样的代码,不是存心折磨人吗。
------解决方案--------------------
说实在的,这样的代码很无聊!有精力花在这上面,可以学更多的东西
[解决办法]
[解决办法]
http://topic.csdn.net/u/20101124/10/d1135308-07c6-46eb-8c3e-60e61e8fb9a2.html
和这个差不多的帖子,右结合和从又开始算不是一回事
[解决办法]
这样代码行数少,一屏能看到更多代码
不过要加括号
加了括号后的可读性并不比一堆的if else更难读!
[解决办法]
谁这么死逼写这样不可读的程序啊。恕我直言,程序应该是问题简单化,可读性大。我猜测,这个题肯定是学校里的考试题吧。不然咋会这样。
[解决办法]
[解决办法]
return selforder <= order ? selforder != order ? -1 : 0 : 1;
相当于
Java code if(selforder <= order) { if(selforder != order) return -1; else return 0 } else { return 1; }
[解决办法]
群众纷纷表示看不懂的才是健全人士
[解决办法]
[解决办法]
[解决办法]
[解决办法]
return selforder <= order ? selforder != order ? -1 : 0 : 1;
这个很好理解啊,就像34楼说的那样理解就行了。
[解决办法]
呵呵, 三目运算??!! 还以为什么呢, 就两个问号表达式嵌套。。。。。。
[解决办法]
代码应该是优雅的
但从LZ给出的代码里面,我看不到丝毫
[解决办法]
selforder < order return -1
selforder = order return 0
selforder > order return 1
[解决办法]
你没看到C#中的linq语法。。看到你就不觉得这个稀奇了
[解决办法]
三木运算符可以嵌套的
[解决办法]
这位朋友在这方面创新,只能使人不理解你!
[解决办法]
[解决办法]
三目运算符可以嵌套的,我也是第一次看到。鉴赏了。
[解决办法]
我猜写这个代码的是高手,晚辈佩服。浪费后人的时间!