黑马程序员技术交流社区
标题:
这个判断条件看着晕啊
[打印本页]
作者:
高浩
时间:
2013-1-16 21:05
标题:
这个判断条件看着晕啊
class Demo
{
public static void main(String[] args)
{
int x=0,y=1;
if(++x==y--&x++==1||--y==0)
System.out.println("x="+x+",y="+y);
else
System.out.println("y="+y+",x="+x);
}
}
if里面的·那是啥意思呢?一个这&?
作者:
王少雷
时间:
2013-1-16 21:12
& : 只要两边的boolean表达式结果,有一个为false。那么结果就是false。
| : 两边只要有一个为true,结果为true。
只有两边都有false,结果为false。
^ : 异或;就是和|有点不一样。当true ^ true = false;
像这种逻辑判断符号优先级都为最后一级,不用考虑,只用记得两边参与运算返回是true or false即可。
关键是要把++ 这种符号判断正确
作者:
唐晓
时间:
2013-1-16 21:21
int x=0,y=1;
if(++x==y--&x++==1||--y==0)
++在前面是自增后在计算,++在后面是计算后在自增
源程序可以理解为:
(++x==y--)就相当于1=1(此时x值是1,y值是0);(x++==1)就相当于1=1(此时x=2,y=0)
||的作用是如果左边为true,右边就不用在算了,如果为false,则右边需要在比较。
所以打印的结果是x=2,y=0;
作者:
王阳
时间:
2013-1-16 21:27
& 和&& 都是并且得运算,只不过&&具有断路功能,也就是说,当前者为false了,就不执行后面的了,从效率上看,&&更快些
作者:
夏振博
时间:
2013-1-16 21:27
& 左右两个条件都满足 (执行) 只要有一个没满足(不执行)
||左右两个条件有一个满足(执行) 条件都不满足(不执行)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2