黑马程序员技术交流社区
标题:
一个容易犯错的题目,分享一下、、、
[打印本页]
作者:
yting_xmei1129
时间:
2013-9-21 13:35
标题:
一个容易犯错的题目,分享一下、、、
本帖最后由 yting_xmei1129 于 2013-9-21 20:04 编辑
下面是代码:
public static void main(String[] args) {
int x = 7;
int y = 9;
if(x++>7 & ++y>9) {
System.out.println("this");
x++;
}
System.out.println("x=" + x + ",y=" + y);
}
复制代码
我记得饿当时看完了这个题目之后想着这题目好简单,饿的答案是:
this
x=9,y=10
然后一运行,才发现自己错了,x++这个的用法是先使用后自加,所以x=7>7 为false,然后
重点
来了,就是这个“&”符号让饿又犯了一次错误,这个“&” 不是 “&&”,他们的区别是很大的,“&” 和 “&&“ 都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。”&&“ 还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。但是这里使用的是“&”,前面判断为false,后面的表达式( ++y>9 )还是要执行的,所以y=10,这个题目真精辟,好容易犯错,你是不是也犯错了呢!一般初学者很容易犯错的、、、分享下经验、、、下面是运行结果--->
x=8,y=10
作者:
黄文伯
时间:
2013-9-21 18:56
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2