java中5 的结果_【java中表达式10/4*5的结果为(B)。A.12.5B.10C.0.5D.12why6.设a=1,b=2,c=3计算表达式a+=c++/--b运行之后,a的值是(B)。A....

你想问什么?设a=1,b=2,c=3 计算表达式a+=c++/--b运行之后,a的值是4怎么获取的?

我暂且当你问的是这个,如不是再追问。下面解答。

这里有一个知识点,是说当一个变量自身进行相加,有几种方式,假设变量int i=0,要自增这个变量变为1有如下做法:

i++

++i

i+=1

这三种区别很重要,这样就知道最后的结果。

前两种都是要先在内存开辟一块新空间,先自身相加在返回新空间值,只是前置(就是加号放前面)改变新空间值,后置未改变新空间值,那么这样有什么区别呢

int i = 0;

int s = i++; //此时i先在内存打开一块新空间,然后把自己的值存放进去,为0,然后自身加1,然后把空间中的值赋值给s,这样s等于0,而i=1;

int s = ++i; //此时i先在内存打开一块新空间,然后自身加1,然后把自己的值存放进去,为1,然后把空间中的值赋值给s,这样s等于1,而i也等于1;

再说第三个i+=1, =+这个符号是java语言里封装好的一种符号,在使用过程是自身相加后面数,意思是说 x+=y就相当于x=x+y ,但是这里它俩还不完全一样,结果一样,但是过程要仔细看,比如:

byte x = 1;

int y = 2;

x += y; //那么x = 3; 这里没错。

x = x + y; //这里代码就有错误了,原因是byte存储空间要比int小,java中byte为1个字节存储空间,int占4个字节,当你想把一个大胖子放在一个很小的空间中,是要告诉系统一声,免得撑爆了 - -! 那么应该这样做 x = (byte)(x+y); 这样就可以强制转换为byte类型,可以获取结果,但是这里多说一句,byte类型的取值范围只有-128 ~ 127,如果你强制的转换过去的值不在这个范围,程序不会报错,但是拿到的结果就不是你想要的了。

说你的程序:设a=1,b=2,c=3 计算表达式a+=c++/--b

c++ 此时c还是3

--b 此时b是1

3/1等于3 ,因为是+=符号,再用这个结果加上之前的a,就是4.

java中int只保留小数点前面部分(注意不是四舍五入,是全部舍去!)。

不懂追问即可!

作业帮用户

2017-07-14

举报

6c0a0adef10d1043fa4f41a7897345ed.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值