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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hughwang90 中级黑马   /  2014-3-23 11:16  /  1011 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hughwang90 于 2014-3-23 23:46 编辑

看到一个很复杂的条件运算:

(quantity >50 ? discount3 : ( quantity > 20 ? discount2 : ( quantity > 10 ? discount 1 : 0.0 ) ) ) ) ;

看的眼睛都花了,请问如何分析?

评分

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

查看全部评分

3 个回复

倒序浏览
看到一个很复杂的条件运算:

(quantity >50 ? discount3 : ( quantity > 20 ? discount2 : ( quantity > 10 ? discount 1 : 0.0 ) ) ) ) ;

看的眼睛都花了,请问如何分析?

先看最左边的条件运算符,并把( quantity > 20 ? discount2 : ( quantity > 10 ? discount 1 : 0.0 ) ) 用条件2代替,即:(quantity >50 ? discount3 : 条件2);这样就比较明显了,如果quantity >50,值就取discount3,否则值就取条件2;而条件2同理把( quantity > 10 ? discount 1 : 0.0 ) 替换条件3;即如果quantity > 20 ,值取discount2,否则值取条件3;最后条件3则是,如果quantity > 10,值取discount1,否则值取0.0;综上所述,语句意思如下:
如果quantity >50,值取discount3,如果quantity <= 50并且quantity > 20,值取discount2,如果quantity <= 20并且quantity > 10,值取discount1,否则值取0.0 。

评分

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

查看全部评分

回复 使用道具 举报
  说实话这一个我觉得你把他转换成if语句看起来就很容易咯,不知道下吧你是否感觉清晰咯                                      
               if(quantity >50){
                       return discount3;
               }else if(quantity > 20){
                       return discount2;
               }else if(quantity > 10){
                       return discount1;
               }else{
                       return 0.0;
               }

评分

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

查看全部评分

回复 使用道具 举报
(quantity >50 ? discount3 : ( quantity > 20 ? discount2 : ( quantity > 10 ? discount 1 : 0.0 ) ) ) ) ;
随便说个数就好分析咯:
quantity=49
1.49>50 不成立,选里面带括号的(quantity>20?....)
2.49>20 成立,选discount2
o了

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马