java賦值運算符,算數運算符

1-------java表達式的值的左邊值:java

a=3;  此賦值表達式的值爲3;code

計算長串表達式的值的時候,注意從左往右計算。例如編譯

public static void main(String[] args) {
  // TODO Auto-generated method stub
  int a=1;
  //int b=a+(a=2)+a+(a=3);
  int k=(a=a+(a+(a=2)+a)+a)+3;
  System.out.println(a);
  //System.out.println(b);
  System.out.println(k);
 } 
 
 //輸出8,11.注意a的值常常改變

2,算術表達式class

int a=1;
  int b=2;
  int c=3;
  System.out.println(a+b+c); 
  //1,找a,2讀+,3,找b同時讀取後面+判斷優先級。4進行運算計算結果和a相加
  
  
  int i=1;
  int j=2;
  int k=(i=3)+(j=4)+i*j;
  System.out.println(k);
  //結果輸出19,前面的賦值語句先執行,以後的i*j語句執行的時候數據改變了。
  
  
  
  //a%b式子中,由a的符號決定結果的符號,兩個數的絕對值提供結果的。
  //判斷奇數和偶數,不能判斷對於1的問題
public static boolean isOdd(int i){ 
return i % 2 != 0; 
}

3,i++和++i運算符變量

int i=1;
System.out.println(i+++i+++i++); 
//6


int i=1;
  System.out.println(i++ + ++i+i++ + ++i);
  //12

輸出結果  6   拆分的時候從後往前拆分。即 i++  +   i++  +  i++  = 1+2+3=6.object

++必須是一個變量。im

 

4,關係運算符 ==數據

int a=10;
  int b=10;
  double c=10.0;
  //左邊右邊類型一致,直接比較
  System.out.println(a==b);
  //先將a的值提高爲double類型,再比較
        System.out.println(a==c);   
        
        因此兩個都是true

 

5,小數問題,和int類型賦值給byte類型會報錯,由於會損失精讀:static

 

 5;邏輯表達式 &的優先級高於|img

因此 true|flase&false  的結果是true

6:三目運算符;

int a=10;

  double b=5.0;

  System.out.println(a>b?a:b);

首先會類型轉換。轉化成double,三目運算表達式的值是 10.0

//int類型和boolean類型   只能轉化爲原始object類型   因此轉化爲obj類型了。
System.out.println(3>2?1:true);
  Object obj=3>2?1:true;
  System.out.println(obj);

 

7:注意賦值表達式:

 short i=1;
 //第一個表達式會報錯,由於int不能賦值給int類型。直接編譯不能經過了
  i=i+1;
  //第二個運算後的結果和左邊的類型一致,因此它仍是short類型。
  i+=1;

8:注意賦值運算符是優先級最低的;

  int i=0;
  for(int j=0;j<10;j++){
   i=i++;
  }
  System.out.println(i);
  
  //輸出的結果仍是0
相關文章
相關標籤/搜索