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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wawsc5354524 中级黑马   /  2014-8-9 01:07  /  1219 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int x = 1,y = 1;

if(x++==1 | ++y==1)
{
        x =7;
}
System.out.println("x="+x+",y="+y);



x是7,我知道,可是Y=2是怎么弄的?不好意思,那一节没有听懂,唉

评分

参与人数 1技术分 +1 收起 理由
张然龙 + 1

查看全部评分

10 个回复

倒序浏览
请给我详细讲解一下“|”的使用方法吧...么么哒
回复 使用道具 举报
“|”单或时,无论左边的运算结果是什么,右边都参与运算。所以++y自增了1,y=2。
“||”双或时,当左边为true时,右边不参与运算。如果改为"||",那么结果是y=1。

评分

参与人数 1技术分 +1 收起 理由
张然龙 + 1 很给力!

查看全部评分

回复 使用道具 举报
++y是先自增再赋值
回复 使用道具 举报
if条件语句中的两条语句都执行了,++y就相当于y=y+1,所以y的结果是2了....你要是将逻辑运算符改成||的话,y就等于1了
回复 使用道具 举报
楼上都说清楚了
回复 使用道具 举报
@地狱天堂说的是正解
回复 使用道具 举报
3L正解,学习了
回复 使用道具 举报
3L正解

还有&&,左边如果是false,右边也不会继续判断运算了

怎么这么多人被禁言,。
回复 使用道具 举报
kakasa 发表于 2014-8-9 21:58
3L正解

还有&&,左边如果是false,右边也不会继续判断运算了

这个我知道短路现象
回复 使用道具 举报
地狱天堂 发表于 2014-8-9 03:47
“|”单或时,无论左边的运算结果是什么,右边都参与运算。所以++y自增了1,y=2。
“||”双或时,当左边 ...

哦,原来是|的时候无论左边是否短路右边都会运算啊,谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马