黑马程序员技术交流社区

标题: 自我总结 [打印本页]

作者: 960943877    时间: 2014-12-15 23:00
标题: 自我总结
public static void main(String [] args)
{
        int a=10;
        if(a++>10)
{
        a=20;
}
        System.out.println(a);
}
晚上和小伙伴们就这个问题讨论了大半天,最终还没得出一个结论。看起来挺简单呢呀。


作者: zmhlnrs    时间: 2014-12-15 23:07
输出a=11;刚开始定义a=10;所以  if(a++>10)这句话不满足以后a会自加1,if循环里面的a=20不会运行
直接读到输出语句。
作者: huduzhi    时间: 2014-12-15 23:11
好努力啊,成为大神的节奏
作者: 取名回忆的时光    时间: 2014-12-15 23:38
同学这个很好理解的,首先你要明白前++和后++的区别。当是++a是先将a变量的值先+1后得到的这个值用来参与比较运算,当是a++则是将a变量的值先用来参与比较运算后,自身在+1;所以你的程序可以分解为下:
①(a++)  由于是后++,所以参与比较运算的值就是(10)
②由于(10>10)不成立,所以if中的语句不执行
③比较完成后a=a+1=11;
反之依然:
当是if(++a > 10)时
分解如下
①(++a)  由于是前++,所以参与比较运算的值就是a先+1后的值(11)
②由于(11>10成立,所以if中的语句执行
③a=20;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2