黑马程序员技术交流社区
标题:
下面这个题为什么结果是 11?
[打印本页]
作者:
十指相扣
时间:
2014-3-24 20:57
标题:
下面这个题为什么结果是 11?
本帖最后由 十指相扣 于 2014-3-25 20:34 编辑
Class Demo
{
public static void main(String [] args)
{
int a=10;
if(a++>10)
{
a=20;
}
System.out.println(a);
}
}
作者:
sxhs2008
时间:
2014-3-24 21:32
你把a变成:++a就可以打印出20了,++在前,是先自加在运算,++在后是先运算在自加
作者:
luoyilan222
时间:
2014-3-24 22:04
public static void main(String[] args) {
int a = 10;
// 先说下a++地意思吧 就是要把if (a++ > 10)这句执行完后a==11;
// 当执行到if (a++ > 10)
// 先执行a++ (现在a还是等于10)
// 然后比较10>10不成立
// 然后跳转到 下一行,现在a==11
// 所以最后结果输出11 System.out.println(a);
if (a++ > 10) {
a = 20;
}
System.out.println(a);
}
作者:
whb359106956
时间:
2014-3-24 22:10
Class Demo
{
public static void main(String [] args)
{
int a=10;
if(a++>10) //这句话的意思是先判断a的值是否大于10 若成立执行a=20语句,然后a自加1 因为a的值是10所以条件不成立,不会执行对a重新赋值的操作,然后a自加1,然后打印。要想让它打印出20只要将>改为>=即可。
{
a=20;
}
System.out.println(a);
}
}
作者:
tcny
时间:
2014-3-25 00:13
Class Demo
{
public static void main(String [] args)
{
int a=10;
if(a++>10)//此处相当于boolean b = a > 10; a++; if(b){
{
a=20;
}
System.out.println(a);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2