邏輯運算子:
| &:邏輯與 | | :邏輯或 | !:邏輯非 |
| && :短路與 | ||:短路或 | ^ :邏輯異或 |
真值表:

重難點:
- 邏輯運算子用于連接布爾型運算式,在 Java 中不可以寫成 3<x<6,應該寫 成x>3 & x<6 ,
- “&” 和“ &&” 的區別:
->&時,左邊無論真偽,右邊都進行運算;
->&&時,如果左邊為真,右邊參與運算 ;如果左邊為假,那么右邊不參與運算,這就是短路的意思, - “|” 和“ ||” 的區別同理, || 表示:當左邊為真,右邊不參與運算 ,
- 異或 ( ^ )與或 ( | )的不同之處是:當左右都為 true 時,結果為 false ,
小練習:

面試題:
public class Test {
public static void main (String [] args){
boolean x = true;
boolean y = false;
short z = 42;
if(y == true)
if((z++ == 42)&&(y = true))z++;
if((x = false) || (++z == 45)) z++;
System. out.println("z=" + z);
}
}
運行結果:
z=43
變形1:
public class Test {
public static void main (String [] args){
boolean x = true;
boolean y = false;
short z = 42;
//if(y == true)
if((z++ == 42)&&(y = true))z++;
if((x = false) || (++z == 45)) z++;
System. out.println("z=" + z);
}
}
運行結果:
z=46
變形2:
public class Test {
public static void main (String [] args){
boolean x = true;
boolean y = false;
short z = 42;
if(y == true)
if((z++ == 42)&&(y = true))z++;
//if((x = false) || (++z == 45)) z++;
System. out.println("z=" + z);
}
}
運行結果:
什么也沒有輸出,
變形3:
public class Test {
public static void main (String [] args){
boolean x = true;
boolean y = false;
short z = 42;
if(y == true)
//if((z++ == 42)&&(y = true))z++;
if((x = false) || (++z == 45)) z++;
System. out.println("z=" + z);
}
}
運行結果:
z=42
關鍵點:注意賦值(=)和等號(==)的不同,
前綴和后綴的區別見:JAVA中自增自減運算子(i++與++i的區別)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258110.html
標籤:其他
上一篇:verilog qpsk調制解調
