java的++i和i++的分析

Posted 128度

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的++i和i++的分析相关的知识,希望对你有一定的参考价值。

关于自增自减,先来一道题,大家尝试着做一下:

1     public static void main(String[] args) {
2         
3         int a=2;
4         int b=a++;
5         int c=--a;
6         System.out.println("a:"+a+",b:"+b+",c:"+c);
7     }

答案在这里:
a:2,b:2,c:2
看完答案,不知道大家有没有什么感觉,再来一道吧:

1     public static void main(String[] args) {
2         
3         int i=0;
4         for(int j=0;j<10;j++){
5             i=i++;
6         }
7         System.out.println("i:"+i);
8     }

下面是答案:
i:0
猜对了吗,如果没猜对,好好想想,你一定会猜对的,什么?你猜对了,
大神啊,那么请大神接招:

1     public static void main(String[] args) {
2         
3         int i=5;
4         int j=(i++)+(++i)+(i--)+(--i);
5         System.out.println("i:"+i+",j:"+j);
6     }

答案来也:
i:5,j:24
怎么样,有没有什么感觉,别着急,下面是分析:

1         //i++==> i=6;j=5
2         //++i==> i=7;j=7
3         //c--==> i=6;j=7
4         //--d==> i=5;j=5
5         //5+7+7+5=24
6         //6+7+6+5=24

但是有两个24,结果到底是哪一个呢,别急,看完下面的题你就知道答案了:

1     public static void main(String[] args) {
2         
3         int i=5;
4         int j=(i++)+(++i);
5         System.out.println("i:"+i+",j:"+j);
6     }

这是正确答案:
i:7,j:12
猜对了吗,看我的分析:

1         //i++==> i=6;j=5
2         //++i==> i=7;j=7
3         //6+7=13
4         //5+7=12

明白了吧 >O.O<
这篇文章说是分析,但其实只是给大家出了几道题,如果大家有什么想法,可以给我留言哦。

 











以上是关于java的++i和i++的分析的主要内容,如果未能解决你的问题,请参考以下文章

Java错题

JavaScript 片段

以下代码片段的算法复杂度

js 常用代码片段

编译原理--语法制导翻译器

[Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)][C. Playing Piano](代码片段