java里&&与&的区别

如题!!!!!!!!!!!!
2024-12-03 15:13:09
推荐回答(5个)
回答1:

java中&和&&的区别,&和&&虽然都是逻辑运算符,都是判断两边为真,则语句成立,但是在运行的时候,还是有差别的,下面举例来说明。
例子一:
public class Test2{
public static void main(String[] args){
int i=3;
if((i++>5)&(i++<9)){
System.out.println(i);
System.out.println("恭喜,执行完了条件语句!");
}
System.out.println(i);
}
}
从条件判断语句来看,是不成立的,但是i是自加了两次,有初始值3变成5。

例子二:java中&&的例子:
public class Test2{
public static void main(String[] args){
int i=3;
if((i++>5)&&(i++<9)){
System.out.println(i);
System.out.println("恭喜,执行完了条件语句!");
}
System.out.println(i);
}
}
从条件判断语句来看是不成立的,变量i只自加了一次。
总结:
&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止。如&&例子中的i++>5被执行了,而i++<9并没有被执行,这就是他们的差别。&例子中的i++>5和i++<9都被执行了。

回答2:

&是用来处理0101这样的2进制字符的位运算的,而&&是处理true和false这样的布尔逻辑运算。
&需要计算两边表达式的值,然后计算整个表达式的值
&&短路运算符,第一个表达式的值为FALSE,那么整个逻辑表达式的值为FALSE,第二个表达式不计算

回答3:

&&是短路运算符,只要前面一个条件是false就结束,&不管前面是true还是false,两边都会执行,如果两个当中有一个false则返回false

回答4:

楼上的都没说到重点上,看这个例子,

if(str!=null && str.equals("123")) {}
这里先判断str是否为null,必须用&&。因为如果只用&那么第一个条件判断如果为false就证明str=null,这时候再做第二个判断str.equals("123"),因为str是null所以就会出现空指针异常。而用&&就不会出现异常,因为判断完str!=null是false整个表达式就直接返回false了。不会做第二个条件判断。

回答5:

好像好似执行顺序也不一样吧,&&会全部考虑,而&遇到一个false就停止,应该是这样的。