public class Test
{
public static void main(String[] args)
{
int j = 0;
for(int i=0;i<100;i++)
j = j++;
System.out.println(j);
}
}大家会认为是打印多少为什么,把打印的步骤写出来
{
public static void main(String[] args)
{
int j = 0;
for(int i=0;i<100;i++)
j = j++;
System.out.println(j);
}
}大家会认为是打印多少为什么,把打印的步骤写出来
因为j==0,所以先把0赋值给j
然后再j++所以不管循环多少次,j始终为0你再试试 j = ++j呢
如果想要打印结果为100个 0 ,
public class Test
{
public static void main(String[] args)
{
int j = 0;
for(int i=0;i<100;i++)
{
j = j++;
System.out.println(j);
}
}
}
这个循环体内部不但有for(int i=0;i<100;i++)控制j++,还有System.out.println(j);
首先要理解什么是j++,j++就是首先将j赋值给j++(此时把j++当成一个变量)分析:j=j++
第一步: j++ (j = 0,j++ = 0)
第二步: 执行j++实现j自增 (j = 1,j++ = 0)
第三步: 将j++赋值给j (j = 0,j++ = 0)总的来说,j的变化为0-》1-》0,也就是说,j=j++毫无意义
因为j==0,所以先把0赋值给j
然后再j++所以不管循环多少次,j始终为0你再试试 j = ++j呢”有点不对:
j=j++ 应该是先计算j++,然后才是赋值,否则后面的解释说不通。再说,赋值的优先级低于++运算。
大家看清楚
for(int i=0;i<100;i++)
j = j++;System.out.println(j);在for循环之外 只输出一次
public class Test
{
public static void main(String[] args)
{
int j = 0;
for(int i=0;i<100;i++)
j = j++;
System.out.println(j);
}
}
/*
Output:101*/
public class TestNum {
public static void main(String[] args)
{
int j = 0;
for(int i=0;i<100;i++)
{
j = j++;
}
System.out.println(j);
}
}/*
Output:
0
-------------------
1.j=0 j++=0 赋值之后再自加
2.j=j++=0 自加后的j重新被赋值
以后少些这样的代码吧
*/
public static void main(String[] args)
{
int j = 0;
for(int i=0;i<100;i++)
{
j = j++;
}
System.out.println(j);
}
}
/*
Output:
0
-------------------
1.j=0 j++=0 赋值之后再自加
2.j=j++=0 自加后的j重新被赋值
以后少些这样的代码吧
*/
/*
j=0;
k=j++;
j=k;
*/
j = j++ 是0;
j = ++j;这样的话,输出100;
j = ++j; // 输出100
我的回复呢?