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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© czb 中级黑马   /  2014-9-13 19:24  /  1665 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a=2;
int b=(a++)+3*a;
那么b等于多少呢~

15 个回复

倒序浏览
还有一个就是int a=2;
回复 使用道具 举报
czb 发表于 2014-9-13 19:27
还有一个就是int a=2;

那么int c=a+3*a++;
那么c等于多少呢
回复 使用道具 举报
a++在本次计算中不会变,在下一次计算才会变成3,因此为2+3*3=11
回复 使用道具 举报
答案是11.应该是因为++在后,所以第一个a的值是2,然后3*a的时候a的值就是3了。
回复 使用道具 举报
11 ,自己写代码试一下不就 知道了
回复 使用道具 举报
czb 中级黑马 2014-9-13 19:34:23
7#
哈哈哈,我发现张老师的ppt里面讲错了~
回复 使用道具 举报
pvting 中级黑马 2014-9-13 23:06:22
8#
结果应该是   b=2+9=11
回复 使用道具 举报
ql627666537 来自手机 中级黑马 2014-9-13 23:28:48
9#
应该是11   没错的话
回复 使用道具 举报
int a=2; int b=(a++)+3*a; 那么b等于多少呢~ 等于9
回复 使用道具 举报
下一个 是c=11
回复 使用道具 举报
11 Java与C不同,Java对表达式求值顺序做了严格规定。一定会等到a++的全部效应都执行完毕之后才会去计算3*a
回复 使用道具 举报
czb 中级黑马 2014-9-14 08:42:23
13#
梦里听传说 发表于 2014-9-13 23:33
int a=2; int b=(a++)+3*a; 那么b等于多少呢~ 等于9

要努力了,算错了,第一个是11,第二个是12~
回复 使用道具 举报
b=(2)+3*3=11
回复 使用道具 举报
LFW 中级黑马 2014-9-14 10:31:14
15#
        int a=2;         int b=(a++)+3*a;》》》这个应该是 )))) 不管a++还是++a,运算完a都是3。。。。a++和++a的区别在于(a++)还是2,(++a)是3.所以b = (a++)+3*a等于2+3*3=11。
回复 使用道具 举报
LFW 中级黑马 2014-9-14 10:40:03
16#
LFW 发表于 2014-9-14 10:31
int a=2;         int b=(a++)+3*a;》》》这个应该是 )))) 不管a++还是++a,运算完a都是3。。。。a++和++a的 ...

b*a++   b*a , a=a+1
b*++a   a=a+1,b*a》》》》》或许这样更好理解。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马