int n = 0; n++; System.out.println(n); 你这样执行后的结果就为1 int n = 0; n = n++; System.out.println(n); 这样执行的结果肯定是0,因为n++执行后n为1而返回值为0,再把0赋给n,n又变成0,所以最后还是0 通过这两个例子的对比不知楼主能不能知道原因
n=n++; 其实可以分成以下3句 n1=n; n=n1; n1=n1+1;
int m=n++ 与 int m=++n;1.int m=n++,它先将n的值赋给m,然后自身再加1. 2.int m=++m,它是n先加一,然后再将加后n的值赋给m的 3,不管执行那个操作,n的值都加一了
n => 0;
n = n++ => 0; // n是primative, 这条语句显示将n 赋值 0, 然后n++(已经是一个新的值但没有改变原来的那个n) 原来的n还是0.
后面也是一样.你直接n++就出来结果了.
程序运行到:n=n++;时,先把n赋值到给n,然后++,就算有返回值也不会再赋值n了啊
n++是先赋值后运算
n还是0
这样一直循环
int n=0;
System.out.println(n++);//输出为0,明白了吗?
System.out.println(n);//此时才输出为1
public class aaaa {
public static void main(String[] args) {
int n=0;
for(int i=0;i <3;i++)
{
int a=n++;
System.out.println(n);
System.out.println(a);
n=a;
}
System.out.println("n="+n);
}}
结果为:1
0
1
0
1
0
n=0其实是n++后。n的值是为1了。然后又用0赋给n了。那n的值就永远为0了。
{
n += 1;
} 如果非得++,就这么来吧
n++;
System.out.println(n);
你这样执行后的结果就为1 int n = 0;
n = n++;
System.out.println(n);
这样执行的结果肯定是0,因为n++执行后n为1而返回值为0,再把0赋给n,n又变成0,所以最后还是0
通过这两个例子的对比不知楼主能不能知道原因
其实可以分成以下3句
n1=n;
n=n1;
n1=n1+1;
2.int m=++m,它是n先加一,然后再将加后n的值赋给m的
3,不管执行那个操作,n的值都加一了