首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

|跟||、&&和&

2012-09-19 
|和||、&&和&?| : 会检查每一个 条件的真伪,再做“或”运算 ||: 按照条件写的顺序,直到一个为true时,后面的条

|和||、&&和&

?


| : 会检查每一个 条件的真伪,再做“或”运算
||: 按照条件写的顺序,直到一个为true时,后面的条件则不再检查,直接进入条件
& : 会检查每一个 条件的真伪,再做“与”运算
&&: 按照条件写的顺序,直到一个为false时,后面的条件则不再检查,直接跳出

&是位运算符,表示按位与运算。&&是逻辑运算符,会短路。

?

例如:

?public static void main(String []args)
?{
??String str=null;
??if(str!=null && str.length()==1)
??{
???System.out.println("sssssss");
??}else
??{
???System.out.println("ccccccccccc");
??}
?}

打印ccccccc

?

str为null? str!=null结果为false,后面的str.length()==1就不会检查后面的值了,if()中直接返回false。不会报错。

?

改一下:

?public static void main(String []args)
?{
??String str=null;
??if(str==null && str.length()==1)
??{
???System.out.println("sssssss");
??}else
??{
???System.out.println("ccccccccccc");
??}
?}

结果:

Exception in thread "main" java.lang.NullPointerException
?at edit.main(edit.java:6)

str==null结果为true,则会检查后面的值

?

&为按位与(AND)

按位与运算符“&”,如果两个运算数都是1,则结果为1。其他情况下,结果均为零。看下面的例子:

00101010?(值为42)?&?? 0001111?(值为15)?

00001010?(值为10)?

?

热点排行