java i 和 i的面试题_i++和++i问题输出详解(面试)

i++和++i问题,每次刷面试题都能看到

也有好多人在问

今天就详细的整理下

首先先了解下运算符号的优先级

ef6bb7c8f3e545f59ec4e12ddade198f.png

i++和++i的区别

(1)i++简单来说就是先用i的值来参加表达式的计算,然后再自加1

i=4;

a=i++; //此时,先做a=i=4,再做i++,故a=4,i=5

(2)++i则是先自增1,再用自加后的值来做运算。

i=4;

a=++i; //此时,先做++i=5,再做a=++1,故a=5,i=5

单看起来感觉挺简单的,为了更好的掌握,下面搞了个题目加深下印象

题目

dbe63bbc4dbcf48d86dbe8a9cc4d13f7.png

x的值等于4

y的值等于6

遇到++x时 x先加一 再执行

遇到x++时 x的值不变,执行完当前操作后,x的值再加一

x++的时候 x=3

++x 时候 y=3++3 , y=6 ,x=4

题目

a67bff7786d1b6020324091b671953d9.png

static int x,y; 初始化为0

x– 此时 x的值就为-1了

这个y的值就为 y =0+++0 运算顺序变成 (最后一次不算)

所以y=0,x=1

最后的 x+y+++x

遵循 遇到x++时 x的值不变,执行完当前操作后,x的值再加一

1+0+++1

结果就变成 2了

转换的问题:

short i=1;short i=i+1错的理由

java会自动将小容量的变量进行精度提升,然后再进行运算,得到的结果类型是提升后的大容量的数据类型.如果将该结果赋值给小容量的数据类型的变量,则必须进行强制的类型转换

short i+=1对的理由

s1+=i的方式java会对i进行窄化转换,由编译程序自动执行

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值