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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡铭 中级黑马   /  2014-4-26 13:00  /  1269 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 胡铭 于 2014-4-27 16:43 编辑

已知a=1,b=2,c=3,d=4;执行表达式a<b?a : (d>c)?b=100:c后b的值是多少?

评分

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

查看全部评分

7 个回复

倒序浏览
本帖最后由 兰闻天 于 2014-4-26 13:30 编辑

b =2 ,你可以自己去运行一下,这个是a<b为真,执行的是a,再冒号后面的都不执行了。如果改成a>b,那会执行(d>c)?b=100:c,判断d>c真假,真执行b=100,假执行c;

评分

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

查看全部评分

回复 使用道具 举报
这个程序运行不了!!!
回复 使用道具 举报
这个语句是从左到右进行判断的,首先判断A<B 这个为真 只执行a 后面不做判断
回复 使用道具 举报
b=2;
我的理解是a<b 成立,执行 : 之前的表达式。
但是 书上讲 三木运算符是从右至左结合。==》 盼高手解惑
回复 使用道具 举报
这道题出错了   。


1.先要弄清楚关系运算<的优先级比? :运算的优先级高。

2.要知道?:运算符的结合性是右结合。即:自右向左算。



备注: 运算符的优先顺序:
一共有十五个优先级: 1   ()  []  .  ->2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof          从右至左  
3   * / % 4   + - 5   >> <<  6   > >= < <= 7   == !=   8   &  9   ^   10  |   11  &&12  ||13  ?:    从右至左   14   =  +=  -=  *=  /=   %=  |=   ^=   &=   >>=   <<=      从右至左   15  ,就着多吧   结合性:2   13  14  是从右至左   其他都是  从左至右

回复 使用道具 举报
这个b就是等于2,就是已知中赋值,先执行a<b,如果条件成立,直接返回a的值;如果不成立则接着向右进行,一直输出数值为止,b=100或者是3,
回复 使用道具 举报
前面的已经满足了 嵌套里面的三元表达式不会指向

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