黑马程序员技术交流社区
标题: 自我总结 [打印本页]
作者: 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 |