11个回答
推荐于2016-02-03 · 知道合伙人软件行家
yfcp
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:1748
获赞数:5545
有多年网站建设相关工作经验。熟悉ASP、ASP.net、VB、JavaScript、HTML等语言和CSS、Ajax等相关技术。
向TA提问 私信TA
关注
展开全部
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都被执行了。
例子一:
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都被执行了。
展开全部
&是用来处理0101这样的2进制字符的位运算的,而&&是处理true和false这样的布尔逻辑运算。
&需要计算两边表达式的值,然后计算整个表达式的值
&&短路运算符,第一个表达式的值为FALSE,那么整个逻辑表达式的值为FALSE,第二个表达式不计算
&需要计算两边表达式的值,然后计算整个表达式的值
&&短路运算符,第一个表达式的值为FALSE,那么整个逻辑表达式的值为FALSE,第二个表达式不计算
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
&&是短路运算符,只要前面一个条件是false就结束,&不管前面是true还是false,两边都会执行,如果两个当中有一个false则返回false
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的都没说到重点上,看这个例子,
if(str!=null && str.equals("123")) {}
这里先判断str是否为null,必须用&&。因为如果只用&那么第一个条件判断如果为false就证明str=null,这时候再做第二个判断str.equals("123"),因为str是null所以就会出现空指针异常。而用&&就不会出现异常,因为判断完str!=null是false整个表达式就直接返回false了。不会做第二个条件判断。
if(str!=null && str.equals("123")) {}
这里先判断str是否为null,必须用&&。因为如果只用&那么第一个条件判断如果为false就证明str=null,这时候再做第二个判断str.equals("123"),因为str是null所以就会出现空指针异常。而用&&就不会出现异常,因为判断完str!=null是false整个表达式就直接返回false了。不会做第二个条件判断。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像好似执行顺序也不一样吧,&&会全部考虑,而&遇到一个false就停止,应该是这样的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询