若有int a=1,b=2,c=3,d=4;则执行表达式a<b?a:(d>c)?b=100:c后b的值是多少?解释详细些,谢谢啦!

问的是b的值... 问的是b的值 展开
 我来答
nkujulei
2010-11-17 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:72
采纳率:0%
帮助的人:72.8万
展开全部
从右向左执行,先看
(d>c)?b=100:c;
很明显,d>c,那么这个三目运算结果就是b=100,也就是原表达式变为
a<b?a:b=100;
而且a<b是正确的,所以结果就是a了,最终结果是1。
kutpbpb
2010-11-17 · TA获得超过528个赞
知道小有建树答主
回答量:332
采纳率:0%
帮助的人:385万
展开全部
条件运算符,相当于if……else即
所以以上语句等价为嵌套的if-else:
if(a<b) return a;
else if(d>c) return b=100;
else return c;
所以,由于a<b为真,只执行return a,b的值不会发生变化,即b=2;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爽口还明快灬彩旗L
2010-11-17 · TA获得超过322个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:276万
展开全部
a<b?a:(d>c)?b=100:c
这个测试语句,首先测试 a<b,结果为真,所以表达式到此结束,后面的分支就不再测试了,知道了不?所以a,b,c,d的值都没有改变
b = 2
测试语句,习惯叫法而已,条件表达式也是其中一种
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
240643481
2010-11-17
知道答主
回答量:30
采纳率:0%
帮助的人:19万
展开全部
从右向左边运算,先是(d>c)?b=100:c 此时b赋值100 而此时这个表达式也为100 然后是a<b?a:100 表达式结果也为100 因为b此时是100;其实这道题只有b=100;那里给b赋值,其他地方都不会改变b的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liyuepeng02
2010-11-17 · TA获得超过3499个赞
知道小有建树答主
回答量:1081
采纳率:0%
帮助的人:802万
展开全部
从右到左的计算 后面的条件判断为真结果是B=100 然后再算前一个为真 这个表达式为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式