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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© supergcs 中级黑马   /  2014-11-13 11:46  /  1623 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a>b)”后m,n的值是( 0,1)

请问这是为什么

求分析思路 谢谢

4 个回复

倒序浏览
因为刚开始m,n,a,b,c,d都为1,所以(m=a>b)就等价于(m=1>1),1>1为假也就是0,所以m=0;&&运算符只要有一边为假,就不用去计算另外一边,所以n=1.所以最后的结果就是m=0,n=1.
回复 使用道具 举报 2 0
易拉罐 发表于 2014-11-13 13:23
因为刚开始m,n,a,b,c,d都为1,所以(m=a>b)就等价于(m=1>1),1>1为假也就是0,所以m=0;&&运算符只要有一边为假 ...

谢谢你
回复 使用道具 举报
(m=a>b)&&(n=a>b)”后m,n的值是( 0,1)
(1)=赋值优先级很低(第八级?建议去查询下并记住常见的优先级),所以先算a>b然后赋值给m,所以m= 0;
(2)&&运算会短路(即前面部分为假就不会计算后面部分),所以后面不运算n = 1(自己去查询&&和||的短路问题)
回复 使用道具 举报
gabe 发表于 2014-11-13 16:00
(m=a>b)&&(n=a>b)”后m,n的值是( 0,1)
(1)=赋值优先级很低(第八级?建议去查询下并记住常见的优 ...

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