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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kingloveyy 中级黑马   /  2014-9-23 14:03  /  1622 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目大概是这样的:假设 a=1,b=2,c=3,d=4;
        a < b ? a : c < d ? a : d;
看着有点乱了,哪位大神帮我分析一下?这些优先级的东西一直记不清楚

4 个回复

正序浏览
涉及算术优先级,括号优先级最高,换个形式 (a < b) ? a : ((c < d) ? a : d);   这样能理解吗
回复 使用道具 举报
本帖最后由 qiusiyu 于 2014-9-23 15:36 编辑

假设 a=1,b=2,c=3,d=4;
        
a < b ? a : c < d ? a : d;

从左往右,这样分析:     a < b ?         //a是否小于b
                                   a < b ? a      //若是,就输出a
                                   a < b ? a : c < d ?   //若不是,就看“c<d?”
                                                                                 c < d ?        // c是否小于d?  
                                                                                 c < d ? a : d  //若是,就输出a;若不是,就输出d
回复 使用道具 举报

OK,谢啦
回复 使用道具 举报
涉及到三目运算(a<b)?a:(c<d)?a:d,这样能够看懂了吧,两个三目运算嵌套,先比较大小,然后算三目,因为a<b,所以返回a即返回1,比较大小的优先级高于三目运算
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马