一、與操作和或操作的區別
(1)在Java程序中,使用與操作,要求所有表達式的判斷結果都是TRUE,才為真,若有一個為FALSE,那么最終判斷結果則為FALSE
(2)使用或操作,只要其中有一個表達式為TRUE,那么最終的結果就為TRUE,只有當所有的表達式為FALSE時最終結果才為FALSE
二、&與&&,|與||的區別
(1)&與&&
在程序中,&與&&的區別在於:
a.使用&時,當前面的表達式為假的時候,程序依舊會繼續執行后面的表達式,然后再得出FALSE的結果,代碼如下:
public class Test { public static void main(String[] args) { int i=0; if(10!=10&(i++)==1){ }else{ System.out.print("結果為假 "+i); } } }
結果如下:

b.當使用&&(短路與)時,則相反,當前面的表達式結果為假時則不會再執行后面的表達式,直接得出FALSE的結果,代碼如下:
public class Test { public static void main(String[] args) { int i=0; if(10!=10&&(i++)==1){ }else{ System.out.print("結果為假 "+i); } } }
結果如下:

(2)|與||的區別
a.當使用|時,若前面的表達式為真時,程序會繼續執行后面的表達式,然后在得出TRUE的結果,代碼如下:
public class Test { public static void main(String[] args) { int i=0; if(10==10|(i++)!=0){ System.out.print("結果為真 "+i); }else{ } } }
結果如下:

b.當使用||(短路或)時,若前面的表達式結果為真,則程序不會再執行后面的表達式,直接得出TRUE的結果,代碼如下:
public class Test { public static void main(String[] args) { int i=0; if(10==10||(i++)!=0){ System.out.print("結果為真 "+i); }else{ } } }
結果如下:

