黑马程序员技术交流社区
标题:
关于i++的实例问题,已被坑了无数次!!
[打印本页]
作者:
zwb690949450
时间:
2016-4-13 22:51
标题:
关于i++的实例问题,已被坑了无数次!!
int x = 1,y = 1;
if(x++==2 & ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
输出答案不应该是x=7和y=2吗??,为什么编译出来是x=2,y=2啊!!!坑坑坑
作者:
dxw
时间:
2016-4-13 22:57
判断的时候x=1吧,判断完之后自增为2
作者:
李亚东_JAVAEE
时间:
2016-4-13 23:16
if(x++==2 & ++y==2) //x++是先赋值后自增,所以和2比较的是1,虽然不符合if条件,但还是会自增1的,即x=2,因为&的前后都要执行,所以y也会自增1,即y=2。不懂的话再问我
作者:
钱金磊
时间:
2016-4-13 23:32
少年!你该是没好好学吧!x++与++x的场合没分清楚!
作者:
NB的笨小孩
时间:
2016-4-14 07:17
这个就是x++和++x的区别
作者:
jialianghao
时间:
2016-4-14 10:11
因为x++==2是假,所以不满足条件,但是输出的是x自增后的结果。
作者:
psuugdufnm
时间:
2016-4-14 11:03
因为不符合if条件啊 。
作者:
Yoyoqiu
时间:
2016-4-14 12:43
楼主对逻辑或再看看 & 要两边都是true 才执行
作者:
fanxiaolin
时间:
2016-4-14 13:54
不晓得 写的什么?
作者:
追梦de蜗牛2016
时间:
2016-4-14 14:11
作业题???
作者:
leiothrixs
时间:
2016-4-14 19:46
条件表达式为false,所以不执行后面的语句体,输出x=2,y=2
作者:
west2179
时间:
2016-4-14 19:55
你为什么不问老师啊.....
作者:
ab159263487
时间:
2016-4-14 20:02
因为不符合 if 条件,但是在判断的过程后X和Y都自增 1 ,所以X和Y的值都是2
作者:
zwb690949450
时间:
2016-4-14 20:26
嗯嗯,这样说能明白了
作者:
yaolv7
时间:
2016-4-14 21:57
我也看不懂{:3_65:}
作者:
lrx
时间:
2016-4-14 22:04
x++是先赋值后自增,所以和2比较的是1,虽然不符合if条件,但还是会自增1的,即x=2,因为&的前后都要执行,所以y也会自增1,即y=2。
作者:
格城先生
时间:
2016-4-14 22:22
west2179 发表于 2016-4-14 19:55
你为什么不问老师啊.....
其实楼主想说:问老师就没有黑马币啊?
作者:
心若不动
时间:
2016-4-14 22:26
if(x++==2 & ++y==2) //x++是先赋值后自增,所以和2比较的是1,虽然不符合if条件,但还是会自增1的,即x=2,因为&的前后都要执行,所以y也会自增1,即y=2。不懂的话再问我
作者:
大山的伤
时间:
2016-4-14 22:48
x++保留自身,并且++y优先自加,运算完成,x被赋值,所以结果如你所见!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2