举例说明java中&和&&的区别

[复制链接]
查看11 | 回复3 | 2008-12-6 10:19:31 | 显示全部楼层 |阅读模式
在书中说到:A&B—— 运算:逻辑与; 运算结果:A、B均为true时结果才为true,其他情况为false

A&&B—— 运算:短路与; 运算结果:A、B均为true时结果才为true,其他情况为false
为什么两个符号运算结果的描述是一样的??哪位大虾能给我举例说明java中&和&&的区别

回复

使用道具 举报

千问 | 2008-12-6 10:19:31 | 显示全部楼层
逻辑与和短路与区别么! 很简单的,你就这么想,其实他们的功能都是一样的。 区别就在于: 拿你这个例子说 你这是先定义了boolean类型是吧,判断的是true or false 再执行的时候 a&b,我是指程序内部执行! 系统先判断a 如果是ture了 那咱们知道结果一定是true了,可是系统还要继续再判断 b 。然后输出才是true 而a&&b 同样判断a 在这里 如果a是true了。 系统不会再去判断b的值然后就输出 结果了。 就是说到这短路了。但如果a要是false的他就还会继续判断b 因为这是&&的关系不是//的关系.再应用的时候主要就是以后做的程序大了,可能需要判断的表达式很长,才用这个就能节省很大的运算过程,...
回复

使用道具 举报

千问 | 2008-12-6 10:19:31 | 显示全部楼层
没有一样的,你就这样想好了,&比较笨,无论前面条件是否成立,它都会继续判断下面的条件,而&&比较聪明,前面如果成立了,就不再对后面进行判断了。 这样当两个条件都成立的时候,&的执行效率高,前面的条件不成立的时候,&&执行效率高! 例子: public class Aa { public static void main(String[...
回复

使用道具 举报

千问 | 2008-12-6 10:19:31 | 显示全部楼层
逻辑与和短路与算出来的结果的一样的。 但是短路与要比逻辑与更人心化,现在基本都用短路与。比喻 if(31&5>4&6>5&9>8&7>6) 这是逻辑与。 其实只要比较第一个就出结果了。但是它会一个个比较,直到结尾 如果用的是短路与就不同。他比较第一个。不满足,直接就不比较后面的了。 如果满足就比较第二个,如果第二个不满足也不...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行