说说自增自减运算?看下这几个代码运行结果?

在写代码的过程中,常见的一种情况是需要某个整数类型变量增加 1 或减少 1,Java 提供了一种特殊的运算符,用于这种表达式,叫做自增运算符(++)和自减运算符(--)。

++和--运算符可以放在变量之前,也可以放在变量之后。

当运算符放在变量之前时(前缀),先自增/减,再赋值;当运算符放在变量之后时(后缀),先赋值,再自增/减。

例如,当 b = ++a 时,先自增(自己增加 1),再赋值(赋值给 b);当 b = a++ 时,先赋值(赋值给 b),再自增(自己增加 1)。也就是,++a 输出的是 a+1 的值,a++输出的是 a 值。

用一句口诀就是:“符号在前就先加/减,符号在后就后加/减”。

看一下这段代码运行结果?

int i  = 1;
i = i++;
System.out.println(i);

答案是 1。有点离谱对不对。

对于 JVM 而言,它对自增运算的处理,是会先定义一个临时变量来接收 i 的值,然后进行自增运算,最后又将临时变量赋给了值为 2 的 i,所以最后的结果为 1。

相当于这样的代码:

int i = 1;
int temp = i;
i++;
i = temp;
System.out.println(i);

这段代码会输出什么?

int count = 0;
for(int i = 0;i < 100;i++)
{
    count = count++;
}
System.out.println("count = "+count);

答案是 0。

和上面的题目一样的道理,同样是用了临时变量,count 实际是等于临时变量的值。

int autoAdd(int count)
{
    int temp = count;
    count = coutn + 1;
    return temp;
}

标签: java, Java面试题, Java问题合集, Java编程, Java问题精选, Java常见问题