java notes 03

算數運算符

運算由表達式表示
表達式由運算符和運算分量組成
運算分量可以是常量, 變量, 方法調用

int i =102;
23+i;//整型
23.5+2;//浮點型

運算符的分類

  1. 按功能分類:
    賦值運算 算術運算 關係運算 邏輯運算 條件運算 位運算
  2. 按操作數分類:
    一元運算符 二元運算符 三元運算符

一元運算符

++,–,+,-

int m=20,n=10;
float i=2.0f,j=10.0f;

System.out.print((++i)*(j--));//30.0 i=3.0 j=9.0
System.out.print((m--)*(n++));//200 m=19 n=11

二元算數運算符

+, -, *, /, %

System.out.print(9/2);//4
System.out.print(5/2.0);//2.5

byte x=3,y=4;
long r=80l;
System.out.print(r/y);//20l
System.out.print(x*y);//int 12

int i=10,j=3;System.out.print(9/2);//4
float m=213.5f,n=4.0f;
System.out.print(i%j);//1
System.out.print(m%j);//1.5

int x=3,y=4,z=5;
String s="xyz=";
System.out.print(x+y+z);//12
System.out.print(s+x+y+z);//"xyz=345"
System.out.print(x+y+z+s);//"12xyz="

算數運算符的優先級

高---------------------------->低
前++ 前- - → * / % → + -

關係運算符和邏輯運算符

關係運算用來表達兩個表達式之間的比較
關係運算的結果是boolean型的

關係運算符和關係表達式

<,>,<=,>=,==,!=

int i=10,j=15;
System.out.print(i==j);//false
System.out.print(i>j);//false

String s1="hello",s2="hello";
System.out.print(i==s1);//不行 因爲類型不一致
System.out.print(s1==s2);//true
System.out.print(s1.equal(s2));//true
class myvalue{
	int i;
}
myvalue m1=new myvalue();
myvalue m2=new myvalue();
m1.i=m2.i=32;
System.out.print(m1.equal(m2));//false 因爲聲明瞭不是同一個對象

邏輯運算符和邏輯表達式

運算符:(短路運算)
&&邏輯與:有假則爲假 全真則爲真
||邏輯或:有真則爲真 全假則爲假
!邏輯非:取反

public boolean test(int val,int temp){
	System.out.print(val<temp);
	System.out.println("===");
	return val<temp;
}

if(test(4,6)&&test(7,6)&&test(6,6)){
	System.out.print('true');
}else{
	System.out.print('false');
}
//結果爲輸出兩組"==="false 因爲是短路計算 test(6,6)並沒有被調用

關係運算符和邏輯運算符的優先級

高------------------------------->低
!→< > <= >=→== !=→&&→||

位 賦值 邏輯運算符

位運算符:
~按位取反
&按位與
|按位或
^按位異或 不同爲1 相同爲0

public void 位運算符(){
	int x=53;//0000 0000 0011 0101
	~x;      //1000 0000 0011 0110 → -54 取反減一再取反
	int y=22;//0000 0000 0001 0110
	x&y;	//0000 0000 0001 0100  20
	x|y;	//0000 0000 0011 0111  55
	x^y;	//0000 0000 0010 0011  35
}

位移運算:
算數左移<<
算數右移>>
邏輯右移>>>

System.out.print(4<<2);//16
System.out.print(4<<3);//32

System.out.print(12>>2);//3
System.out.print(-12>>2);//-3
System.out.print(12>>>2);//3
System.out.print(-12>>>2);//1073741821

位運算的優先級

高--------------------->低
<< >> >>> $ ^ |

賦值運算符

int a=67,b=-93;
byte byt=63;
int i=9+a;

//擴展運算符
//+= -= *= /= %= &= |= >>= <<= >>>=
i+=1;//i=i+1

條件表達式/條件運算符

唯一的一個三元運算符

邏輯表達式 ? 表達式1 : 表達式2

String result;
int src=65;
result=src>60?"pass":"not pass";//pass

src=55;
result=src>60?"pass":"not pass";//not pass
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章