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

来源:百度知道 编辑:UC知道 时间:2024/06/01 03:04:21
在书中说到:A&B—— 运算:逻辑与; 运算结果:A、B均为true时结果才为true,其他情况为false
A&&B—— 运算:短路与; 运算结果:A、B均为true时结果才为true,其他情况为false
为什么两个符号运算结果的描述是一样的??哪位大虾能给我举例说明java中&和&&的区别

逻辑与和短路与区别么!
很简单的,你就这么想,其实他们的功能都是一样的。
区别就在于:
拿你这个例子说 你这是先定义了boolean类型是吧,判断的是true or false 再执行的时候 a&b,我是指程序内部执行! 系统先判断a 如果是ture了 那咱们知道结果一定是true了,可是系统还要继续再判断 b 。然后输出才是true
而a&&b 同样判断a 在这里 如果a是true了。
系统不会再去判断b的值然后就输出 结果了。
就是说到这短路了。但如果a要是false的他就还会继续判断b 因为这是&&的关系不是//的关系.

再应用的时候主要就是以后做的程序大了,可能需要判断的表达式很长,才用这个就能节省很大的运算过程,才能让自己的程序快一些!

这么说吧:A&B的话,无论A是否是真,它都会去判断B的。
A&&B的话,如果A是真的,它才会判断B,相反的,A是假的话,它就不去判断B了,直接认定是假了!

没有一样的,你就这样想好了,&比较笨,无论前面条件是否成立,它都会继续判断下面的条件,而&&比较聪明,前面如果成立了,就不再对后面进行判断了。

这样当两个条件都成立的时候,&的执行效率高,前面的条件不成立的时候,&&执行效率高!

例子:
public class Aa {
public static void main(String[] args) {
int i = 5 ;
if( i > 6 & ++i > 6 ){
System.out.println ( "这里使用&");
}
System.out.println( i );
}
}
这时候i的值为6;
public class Aa {
public static void main(String[] args) {
int i = 5 ;
if( i > 6 && ++i > 6 ){
System.out.