浅谈Java三目运算
三目条件运算公式为x?y:z 其中x的运算结果为boolean类型,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值
例:Strings="";
Stringx="默认值";
s=s.isEmpty()?x:s;
这段代码的意思是:先判断s是否为空(结果是空),然后执行s=x,即执行x
再来一个复杂点的
classDates{
intyear,month,day;
Dates(intx,inty,intz){
year=x;
month=y;
day=z;
}
publicstaticintcompare(Datesa){
returnyear>a.year?1
:year<a.year?-1
:month>a.month?1
:month<a.month?-1
:day>a.day?1
:day<a.day?-1:0;
}
1、三目运算符(表达式1)?(表达式2):(表达式3),计算方法是这样的:表达式1是一个逻辑表达式,如果其值为true,则整个表达式的值为表达式2的值,否则为表达式3的值
2、例子:inti=(5>3)?(5+3):(5-3);结果为i=8.因为5>3为true,所以i=5+3.
3、根据三目运算符的从右到左的结合性,我是这样划分的
year>a.year?1:(year<a.year?-1:(month>a.month?1:(month<a.month?-1:(day>a.day?1:(day<a.day?-1:0)))));
所以应该从最右边的那个表达式开始计算,结果应该是1、0、-1中的一个值。
以上纯属个人理解。没搞清楚你这个算法到底是什么意义。。。。
请您花一点时间将文章分享给您的朋友或者留下评论。我们将会由衷感谢您的支持!
热门推荐
10 喜得孙子祝福语简短唯美
11 婚礼祝福语简短朴实大众
12 员工周年祝福语大全简短
13 家长回复节日祝福语简短
14 简短生日祝福语老同学
15 夜雨祝福语简短10字
16 蛋糕祝福语简短闺蜜
17 部门过年祝福语简短独特
18 简短精炼的结婚祝福语