java i-_java i++与++i

在java中i++和++i是比较常见自增运算。也是在面试中常考的知识点之一。但发现很很多人对于这个自增运算理解的不是太深,或者只是单纯的记忆,没有真正的理解,下面我通过下面的例子,来讲讲我对这个自增运算的理解.

++符号在变量前面为称之为前缀式,++符号在变量后面称之为后缀式。前缀式是先执行运算在生成值,后缀式是先生成值在执行运算。在说的直白一点就是把变量比作一个人,把++符号比作吃饭 那么前缀式就是如果要用它那它必须先吃饭才能干活,后缀式就是必须干完活后,在吃饭。

那么按照上面的比喻,我们看一下面的例子:

int i = 0;

int a = ++i;

int b = i++;

System.out.println(a);

System.out.println(b);

System.out.println(i);

下面我们分析一下上面的执行结果:

a = ++i; 看这条语句,按我们之前的比喻i这个人是先吃饭后干活然后向a汇报工作说我干完了开始i没有吃饭i=0然后i先吃饭此时i=1,然后告诉a我干完了,所有a=1

b = i++; 这条语句就是i已经吃饭饭了,所以i=1因为它是先干活后吃饭,所以先向b汇报说我干完了所以此时b=1

接下来我们在看看i的值 因为i在向b汇报工作是先汇报的,还没有吃饭,所以在汇报完第一件事就是先吃饭,所以不管接下来i还有没有新的工作,它第一件事还是先吃饭,i没吃饭时是1,吃完饭后是2,所以此时的i=2。

我们在看一下面的例子:

int j = 1;

j = j++ + j++ + j++ + ++j;

按上面分析,我们来看一下,第一个j++ ++在后面所以是先干活,后吃饭所以此时j=1 第二个j++ 因为第一个j还没有吃饭,所以它要先吃饭,所以此时j=2第三个j++ 因为第二个j还没有吃饭,所以它也要先吃饭,所以此时j=3第四个++j 因为第三个j还没有吃饭,所以它也要先吃饭,所以此时j=4,在看一下符号是在前面,它是先吃饭后干活,所以j在吃一次饭,所以此时j=5所以执行的结果是 1 + 2 + 3 + 5 = 11如果把第四个++j改成j++ 那么结果就是 1 + 2 + 3 + 4 = 10

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值