请看下面这两段代码:代码一:
+++++++++++++++++++++++++
public class Test
{
public static void main(String args[])
{
int i;
i = 0;
i = i++;
System.out.println(i);
}
}
++++++++++++++++++++++++++代码二:
++++++++++++++++++++++++++
public class Test
{
public static void main(String args[])
{
int i,j;
i = 0;
j = 0;
j = i++;
System.out.println(i);
}
}++++++++++++++++++++++++++请问两段代码的输出是什么?
0还是1?我看的书给我的解释是:i先赋值,之后再自动增加1。
我的问题也就来了,对第一段代码,i先被赋值了没错吧,赋值后在自增1也没错吧,那个增加了的1被谁叼走吃了?-___________-
+++++++++++++++++++++++++
public class Test
{
public static void main(String args[])
{
int i;
i = 0;
i = i++;
System.out.println(i);
}
}
++++++++++++++++++++++++++代码二:
++++++++++++++++++++++++++
public class Test
{
public static void main(String args[])
{
int i,j;
i = 0;
j = 0;
j = i++;
System.out.println(i);
}
}++++++++++++++++++++++++++请问两段代码的输出是什么?
0还是1?我看的书给我的解释是:i先赋值,之后再自动增加1。
我的问题也就来了,对第一段代码,i先被赋值了没错吧,赋值后在自增1也没错吧,那个增加了的1被谁叼走吃了?-___________-
如果将i = i++;===>i++;就是1了
我也不太清楚,等待高手
原文
http://tag.csdn.net/Article/936d0e73-abac-4e61-a997-0c80abba2e29.html
j = i++; 这里的J= 0 但是i 应该是=1 因为i先赋直给j 再自增
没有运算 应该是的
感谢For_suzhen(不懂装懂)了 ^ ^
不过这应该算是Java编译器的一个内部小bug吧另外看来我的搜索技能有待提高啊,原来这里以前已经对这个问题详细讨论过了,可我却没检索到-_-这个再放一小段时间
晚上结分