1. 程式人生 > 其它 >自學java第十四天

自學java第十四天

Java的算數運算子

運算子指明對運算元的運算方式。組成表示式的Java操作符有很多種。運算子按照其要求的運算元數目來分,可以有單目運算子、雙目運算子和三目運算子,它們分別對應於1個、2個、3個運算元。運算子按其功能來分,有算術運算子、賦值運算子、關係運算符、邏輯運算子、位運算子和其他運算子

算術運算子

算術運算子用在數學表示式中,它們的作用和在數學中的作用一樣。

算數運算子有:+ 、- 、* 、/ 、% 、++ 、--

舉例:+,-,*

//算術運算子

// + - * / % ++(自增)--(自減)

int a=23;

int b=5;

//+,加,相加運算子兩側的值

//+,同時也是字串的連線運算子

int c=a+b;

System.out.println("a+b="+c);

//-,減,左運算元減去右運算元

int d=a-b;

System.out.println("a-b="+d);

//*,乘,相乘操作符兩側的值

int e=a*b;

System.out.println("a*b="+e);

//零乘以任何數都為零

int f=a*0;

/(除)

//除(整型不能除零,)

int f=a/b;//整數/整數=整數,是截斷取整,而不是四捨五入取整

//int g=a/0;整數不能除零

//當除數或者被除數中有一個為浮點型的,那麼結果就是自然除法的結果

//如果此時除數為0或者0.0那麼結果為正無窮或者負無窮

//0.0除0結果為NaN非數;

System.out.println("Infinity 正無窮"+10/0.0);

System.out.println("沒有四捨五入,直接截斷 :a/b="+f);

System.out.println("0.0/0.0="+(0.0/0.0));

// System.out.println("除零異常"+10/0);

//java.lang.ArithmeticException除零異常

取餘

取餘運算子既可用於兩個運算元都是整數的情況,也可用於兩個運算元都是浮點數(或一個運算元是浮點)的情況。

int a=19;

int b=4;

float c = 3.8f;

float d = 1.8f;

//% 求餘

/*兩個整數時第二個數不能為零

* 一個或者2個為浮點數,第二個數為0或者0.0時,結果NaN,第一個數為0或0.0時,

* 結果為0.0*/

int h=a%b;

System.out.println("a % b="+h);

System.out.println("a % 0.0="+(a % 0.0));

System.out.println("0.0 % b="+(0.0 % b));

System.out.println("c % d="+(c % d));

++自加,--自減

自增(++)自減(--),運算子是一種特殊的算術運算子,在算術運算子中需要兩個運算元來進行運算,而自增自減運算子是一個運算元

//++自增

//定義變數

int A=20;

int B=20;

int C=20;

int D=C++ + B;

//字首自增自減法(++a,--a): 先進行自增或者自減運算,再進行表示式運算。

//字尾自增自減法(a++,a--): 先進行表示式運算,再進行自增或者自減運算

System.out.println("++A="+(++A));

System.out.println("B++="+(B++));

System.out.println("D="+D);

//--自減

D=20;

int E=20;

System.out.println("--D="+(--D));

System.out.println("E--="+(E--));

//int b = ++A; 拆分運算過程為: a=a+1=4; b=a=4, 最後結果為b=4,a=4

//int d = --C; 拆分運算過程為: c=c-1=2; d=c=2, 最後結果為d=2,c=2

比較運算子

>、 >= 、<、 <=、 == 、!=

//比較運算子

System.out.println("5>4 ="+(5>4));

System.out.println("5>=4 ="+(5>=4));

System.out.println("5<4 ="+(5<4));

System.out.println("5<=4 ="+(5<=4));

System.out.println("5==4 ="+(5==4));

System.out.println("5!=4 ="+(5!=4));

成立則為true,不成立則為false。

邏輯運算子

//邏輯運算子

//&&:短路與,前後兩個運算元必須都是true才返回true,否則返回false。

//&:不短路與,作用於&&相同,但不會短路

//||:或,只要兩個運算元中有一個是true,就可以返回true,否則返回false。

//|:不短路或,作用與||相同,但不會短路。

//!:非,只需要一個運算元,如果運算元為true,則返回false;如果運算元為false,則返回true。

//^:異或,當兩個運算元不同時才返回true,如果兩個運算元相同則返回false

boolean a = true;

boolean b = false;

System.out.println("a && b = " + (a&&b));

System.out.println("a || b = " + (a||b) );

System.out.println("!(a && b) = " + !(a && b));

// 短路邏輯運算子
int a = 5;//定義一個變數;

boolean b = (a<4)&&(a++<10);

System.out.println("使用短路邏輯運算子的結果為"+b);

System.out.println("a的結果為"+a);

結果:

賦值運算子:

操作符

描述

=

簡單的賦值運算子,將右運算元的值賦給左側運算元

+=

加和賦值操作符,它把左運算元和右運算元相加賦值給左運算元

-=

減和賦值操作符,它把左運算元和右運算元相減賦值給左運算元

*=

乘和賦值操作符,它把左運算元和右運算元相乘賦值給左運算元

/=

除和賦值操作符,它把左運算元和右運算元相除賦值給左運算元

//賦值運算子

//= += -= /=

int intZ=1;

System.out.println(intZ+=1);

System.out.println(intZ-=1);

System.out.println(intZ*=1);

System.out.println(intZ/=1);

位運算子:

位運算是以二進位制位為單位進行的運算,其運算元和運算結果都是整型值。 位與'&',位或'|',位非'~',位異或'^',右移'>>',左移'<<',0填充的右移'>>>' 位運算的位與'&',位或'|',位非'~',位異或'^'與邏輯運算的相應操作的真值表完全相同,其差別只是位運算操作的運算元和運算結果都是二進位制整數,而邏輯運算相應操作的運算元和運算結果都是邏輯值boolean型。

int a = 60; /* 60 = 0011 1100 */

int b = 13; /* 13 = 0000 1101 */

int c = 0;

c = a & b; /* 12 = 0000 1100 */

System.out.println("a & b = " + c );

c = a | b; /* 61 = 0011 1101 */

System.out.println("a | b = " + c );

c = a ^ b; /* 49 = 0011 0001 */

System.out.println("a ^ b = " + c );

c = ~a; /*-61 = 1100 0011 */

System.out.println("~a = " + c );

c = a << 2; /* 240 = 1111 0000 */

System.out.println("a << 2 = " + c );

c = a >> 2; /* 15 = 1111 */

System.out.println("a >> 2 = " + c );

c = a >>> 2; /* 15 = 0000 1111 */

System.out.println("a >>> 2 = " + c );

其他運算子:

三目運算子(?:)

三目運算子也被稱為三元運算子。該運算子有3個運算元,並且需要判斷布林表示式的值。該運算子的主要是決定哪個值應該賦值給變數。

//三目運算子?:

System.out.println((5>4)?"5>4":"5<4");

instanceof 運算子

該運算子用於操作物件例項,檢查該物件是否是一個特定型別(類型別或介面型別)。

//instanceof

String str1="Name";

boolean bool=str1 instanceof String;

System.out.println(bool);