1. 程式人生 > >Java中,&&與&,||與|的區別

Java中,&&與&,||與|的區別

在java的邏輯運算子中,有這麼四類:&&(短路與),&,|,||(短路或)。

&&和&都是表示與,區別是&&只要第一個條件不滿足,後面條件就不再判斷。而&要對所有的條件都進行判斷。

看下面的程式:

public static void main(String[] args) {
		// TODO Auto-generated method stub
		if((23!=23)&&(100/0==0)){
			System.out.println("運算沒有問題。");
		}else{
        <span style="white-space:pre">	</span>System.out.println("沒有報錯");
        }
	}
輸出的是“沒有報錯”。而將&&改為&就會如下錯誤:
Exception in thread "main" java.lang.ArithmeticException: / by zero

原因是:&&時判斷第一個條件為false,後面的100/0==0這個條件就沒有進行判斷。
        &時要對所有的條件進行判斷,所以會對後面的條件進行判斷,所以會報錯。




   ||和|都是表示“或”,區別是||只要滿足第一個條件,後面的條件就不再判斷,而|要對所有的條件進行判斷。
看下面的程式:
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		if((23==23)||(100/0==0)){
			System.out.println("運算沒有問題。");
		}else{
        <span style="white-space:pre">	</span>System.out.println("沒有報錯");
        }
	}
此時輸出“運算沒有問題”。若將||改為|則會報錯。


原因是:||判斷第一個條件為true,後面的條件就沒有進行判斷就執行了括號中的程式碼,而|要對所有的條件進行判斷,
所以會報錯。