黑马程序员技术交流社区
标题:
关于i 的小迷惑
[打印本页]
作者:
李敬卫
时间:
2012-12-29 22:42
标题:
关于i 的小迷惑
类名主函数省略了…只说问题int i=0,j=0
作者:
李敬卫
时间:
2012-12-29 22:48
本帖最后由 李敬卫 于 2012-12-29 22:53 编辑
先用System输出i加加 ,然后j 加加之后,再输出j,会得到不同的结果。加加放在后面不是先输出再加加吗?为什会得到不同的结果。手机发贴,不方便。请大家见凉,希望我的疑问大家能看懂
作者:
王钊
时间:
2012-12-29 23:16
你的意思是这样吗?
public class Test
{
public static void main(String[] args)
{
int i=0,j=0;
System.out.println(i++);
j++;
System.out.println(j);
}
}
如果是这样,第一个System.out.println(i++)是输出i之后,i再自己加1,i++的意思是这一行语句执行完后,下一条语句执行前i自增1,因而第一个输出得0
而第二个就好理解了,j++后输出j,因而得1
作者:
水天
时间:
2012-12-29 23:17
先看i:你是直接System.out.println(i++);//直接输出i的原有值0,之后再++。所以输出的是0,但i的实际值已经是1了。
再说j:你是说j++;之后再System.out.println(j++);这里的j++和后面的输出语句已经不是同一句执行语句了,按顺序是j++执行完才执行System.out.println(j++);
作者:
水天
时间:
2012-12-29 23:20
{
int i=0,j=0;
System.out.println(i++);
j++;
System.out.println(j);//和j++已经不是同一句了
}
作者:
冉世友
时间:
2012-12-30 10:23
弄清楚语句的执行顺序啊, j++先执行,j变成1, System.out.println(j)后执行,输出是1
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2