位运算符和逻辑运算符的区别看概念就看的我头大了,本来还有一点明白的,但是看了一个程序之后就彻底糊涂了啊,帮忙指明一下哈!
class Example
{public static void main(String args[])
{int x,y=10;
if(((x=0)==0‖((y=20)==20))
{System.out.println("现在的y:"+y);}
{int a,b=10;
if(((a=0)==0︱((b=20)==20))
{System.out.println("现在的b:"+b);}
}
}
class Example
{public static void main(String args[])
{int x,y=10;
if(((x=0)==0‖((y=20)==20))
{System.out.println("现在的y:"+y);}
{int a,b=10;
if(((a=0)==0︱((b=20)==20))
{System.out.println("现在的b:"+b);}
}
}
解决方案 »
- http://www.java-home.com重新上线,诚邀您的加入!
- 关于containsKey遇到的问题,希望高手能帮忙。
- struts+hibernate中文乱码问题,分不够就加!
- 哪位高人帮忙看看我的代码哪里出错了?万分感谢!!!
- 一个sql问题,有数据高人吗?
- 问一个 菜鸟问题 但有可能许多人都没注意到java现象 请各位大虾指点
- 求高手点拨一个“Socket”的Java编程的异常修改办法.
- log4j:WARN Failed to set property ....
- 快要大四毕业了,请问哪位大虾能为我的毕业论文找个题目,关于Java的?
- 菜鸟想要起飞,各位大虾多多帮忙
- 大侠帮帮忙:Java位运算符~
- 应用 Spring JtaTransactionManager 时总出现 连接关闭,不知道怎么回事??
& 与
| 或
^ 异或
~ 非
逻辑运算符 描述
&& 与
|| 或
怎么不行先把20给y==20返回true
楼主【houjiaoer】截止到2008-07-08 13:20:08的历史汇总数据(不包括此帖):
发帖的总数量:7 发帖的总分数:130 每贴平均分数:18
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:3 结贴的总分数:50
无满意结贴数:0 无满意结贴分:0
未结的帖子数:4 未结的总分数:80
结贴的百分比:42.86 % 结分的百分比:38.46 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
楼主该结一些帖子了
int x, y = 10;
if ((x = 0) == 0 || ((y = 20) == 20)) {//(x = 0) == 0为真,所以不执行((y = 20) == 20),直接跳到下一句输出;所以y还等于10
System.out.println("现在的y:" + y);
}
{
int a, b = 10;
if ((a = 0) == 0 | ((b = 20) == 20)) {//(a = 0) == 0 为真,(b = 20) == 20为真,真与真做逻辑或为真,所以做下一句;所以b=20
System.out.println("现在的b:" + b);
}
}
}
}
比如“A || B || C”,如果A为true,将不会继续判断B、C是否为true,因为结果已经确定为true了;同理,如果A为false,则会继续判断B,如B为true,则C不再判断。而“|”为位或运算,不会有类似的性质
{System.out.println("现在的y:"+y);}
这里为短路或,由于x=0这个表达式值为0,0==0为真,于是((y=20)==20)没有运算,于是y=10
& 与
¦ 或
^ 异或
~ 非
逻辑运算符 描述
&& 与
¦ ¦ 或
a||b,a如果为true,则b不做运算。
||举个例子,true || false时,当程序运行到true时就不检测||的条件,并认为这段话是真
而|则会继续检测|后的条件
class Test1 { public static void main(String[] args) {
int x, y = 10;
if ((x = 0) == 0 || ((y = 20) == 20)) {//(x = 0) == 0为真,所以不执行((y = 20) == 20),直接跳到下一句输出;所以y还等于10
System.out.println("现在的y:" + y);
}
{
int a, b = 10;
if ((a = 0) == 0 | ((b = 20) == 20)) {//(a = 0) == 0 为真,(b = 20) == 20为真,真与真做逻辑或为真,所以做下一句;所以b=20
System.out.println("现在的b:" + b);
}
}
}
}
while(true){
System.out.println("md都说完了。");
}