黑马程序员技术交流社区
标题:
byte b=1;b=b++;System.out.println(b);最后打印为什么是1不是2
[打印本页]
作者:
形而上孤独
时间:
2015-7-10 13:52
标题:
byte b=1;b=b++;System.out.println(b);最后打印为什么是1不是2
byte c,b=1;c=b++;System.out.println(b); System.out.println(c)
b结果就是2了
跟之前有什么不同,难道上面的一个莫有进行b++
作者:
黑马和大灰狼
时间:
2015-7-10 13:59
没看出来楼主在纠结什么。b原来等于1. c = b++之后 c先用b的值 c就是1,b自加1 b就是2啦
作者:
zhhrai
时间:
2015-7-10 15:00
我只记住 不要挖这样的陷阱..
不要在单个的表达式中对相同的变量赋值超过一次.
在C中这结果就和你现在想的一样了...
看这里大神的解释:http://www.ticmy.com/?p=43
作者:
落叶随尘
时间:
2015-7-10 15:27
c=b++,执行中是 c = b; b++,即将b值(1)赋给c,b值由1自增成为2,这个表达式执行结果c=1;b=2;
作者:
e咕噜
时间:
2015-7-10 21:59
c=b++就是先将b赋值给c然后再对b进行自增,也就是c=1,b=2
作者:
我不信命ZW
时间:
2015-7-10 22:07
我自己对于这种情况的处理是,++或者--在前就先执行++或者--操作,在参与其他运算;相反,如果++或者--在后面,先参与运算,再执行++或者--操作。
作者:
朙兲
时间:
2015-7-10 22:12
楼上的回答的很正确
作者:
心宥
时间:
2015-7-11 13:22
打印的b是哪个
作者:
心宥
时间:
2015-7-11 13:29
byte b=1;b=b++; 等效于 byte b=1;b=1++; 然后先赋值再自增,这样理解才对吧
作者:
木子天涯
时间:
2015-10-26 23:44
* byte b = 10;
* b++;
* b = b + 1;
* 问哪句会报错,为什么
作者:
暴力反射
时间:
2015-10-27 08:52
因为b的值是先赋值给c的,再进行自增操作所以b的结果是2 c的结果是
作者:
cherrycool
时间:
2015-10-27 09:06
木子天涯 发表于 2015-10-26 23:44
* byte b = 10;
* b++;
* b = b + 1;
肯定是第三句语句啊 只要是赋值语句 = 两边的数据类型 要一致,但是考虑到整数的默认数据类型,所以一般要进行数据类型转换。
作者:
android小学徒
时间:
2015-10-27 09:58
代码可以看成
c=b;
b=b+1;
作者:
sharplance
时间:
2015-10-27 11:36
在赋值语句中自增(++)和自减(--)放在变量左右是不一样,放在左边是先执行自增或自减在赋值,放在右边是先赋值再自增或自减。
作者:
dushine2000
时间:
2015-10-27 12:10
byte c , b =1 ;
c=b++; //b++ ——>b在前 故先进行b对c的赋值运算-->c=1;
//赋值后再进行b++的运算,b++=b+1=2.所以b=2,c=1
System.out.println(b);
System.out.println(c)
作者:
Sayman
时间:
2015-10-27 12:23
b先赋值在自加
作者:
fenger7
时间:
2015-10-27 12:33
++在前,先++在等于;++在后,先等于,后++。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2