A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 yting_xmei1129 于 2013-9-21 20:04 编辑

下面是代码:
  1. public static void main(String[] args) {
  2.                 int x = 7;
  3.                 int y = 9;
  4.                
  5.                 if(x++>7 & ++y>9) {
  6.                         System.out.println("this");
  7.                         x++;
  8.                 }
  9.                
  10.                 System.out.println("x=" + x + ",y=" + y);
  11.         }
复制代码
我记得饿当时看完了这个题目之后想着这题目好简单,饿的答案是:
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




1 个回复

倒序浏览
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马