for (int i = 0,m=0; i <10; i++) {
m=m++;
System.out.println(m);
}
为什么输出的m一直等于0, 最主要是想知道 在这个代码中 m=m++;是怎么运行。一般来说
先把m赋值给m 然后 m在自增,这种情况下 输出的应该是1,2,3.。。。。。 但是实际上
输出的却一直是0 各位求解
因为它是先把m赋值给m,然后m再加1,而每次循环时m都赋值为0,所以m一直等于0。你想输出123...可以试试改成m=++m;
你看看m++和++m的区别就知道了,m++运行后这一行代码m的值是不变的,就是说每次m = m++;本来m下一行要变成m+1但是你又重新赋值,又将m赋值成0
m = 0;
关于m = m++计算过程:
第一步:把m值存在栈顶,即0;
第二步:计算m++,m = m+1,即1;
第三步:把栈顶值赋给m,即0;
m = m++这样写m永远不会变,