關於自增運算子和邏輯運算子一些使用誤區
阿新 • • 發佈:2021-01-04
關於自增運算子和邏輯運算子一些使用誤區
自增運算子
總結
- 對於自增運算子本身變數來說,自增符號無論是在前還是後,其結果都是一樣的在原有基礎上增加後減少1;
- 對於賦值給其他變數來說,自增符號的前後是會導致結果的不同:
- 若形式是k=++i,則此時變數k的數值是變數i加過1後的數值,原則是:先增加後賦值,故變數k的值與i加1後的值一致;
- 若形式是k=i++,則此時變數K的數值是變數i沒有加過1的數值,原則是:先賦值後增加,故此時變數k的數值是i原來的數值。
具體程式碼如下
自增符號在變數後面
int m=1;
int g=m++;
System. out.println("這個是自增符在變數後面"+g);
System.out.println("它本身的值是"+m);
執行結果:
自增符號在變數前面
int m=1;
int k=++m;
System.out.println("這個是自增符在變數前面"+k);
System.out.println("它本身的值是"+m);![在這裡插入圖片描述](https://img-blog.csdnimg.cn/2021010323415368.png#pic_center)
執行結果
位於運算與邏輯運算
總結
-
從布林型別運算來看,二者結果運算均是false;
-
從執行機制來看,邏輯運算它參與程式的中斷操作,而位於沒有,具體如下:
- 表示式1 && 表示式2
- 按邏輯運算進行時,若表示式1是false,則表表達式2不在繼續進行;
- 按位運算進行時,雖然表示式1是false,但是程式仍然會對錶達式2進行執行。
- 表示式1 && 表示式2
具體程式碼
邏輯運算
public class BitOperator{
public static void main(String [] args){
boolean bool;
int n=4,m=5;
// 此時為位運算,雖然bool這個已經是假命題,
bool = m<3 && m>n--;
System.out.println(n);// 此時n值為4
System.out.println(bool);
}
}
執行結果:
位運算
public class BitOperator{
public static void main(String [] args){
boolean bool;
int n=4,m=5;
bool = m<3 & m>n--;
System.out.println(n);// 此時n應該執行減一操作,即為3
System.out.println(bool);
}
}
執行結果: