轉載請保留原文鏈接: http://dashidan.com/article/java/basic/7.html
7.Java運算符
Java運算符分爲, 算術運算符, 複合運算符, 關係運算符, 條件運算符.
① Java算數運算符
Java算數運算符: 加, 減, 乘, 除(取模, 取餘), 算數運算符從右往左賦值.即將等號右邊的值,賦給等號左邊的變量.
加
+
int a = 1;int b = 2;int c = a + b;System.out.println(c);
減
-
int a = 1;int b = 2;int c = a - b;System.out.println(c);
乘
*
int a = 1;int b = 2;int c = a * b;System.out.println(c);
除-取模
/
對整數取模運算,相當於取結果的整數,去掉餘數.
int a = 1;int b = 2;int c = a / b;System.out.println(c);
除-取餘
%
對整數取餘運算,相當於取得不夠整除部分的數值.
int a = 1;int b = 2;int c = a % b;System.out.println(c);
② Java自動類型轉換
當兩個類型不同的數據類型運算時,結果自動轉化爲取值範圍大的數據.
byte->short->int->long->float->double
具體規則:
布爾型和其它基本數據類型之間不能相互轉換.
byte型可以轉換爲short、int、、long、float和double.
short可轉換爲int、long、float和double.
char可轉換爲int、long、float和double.
int可轉換爲long、float和double.
long可轉換爲float和double.
float可轉換爲double.
示例代碼:
package com.dashidan.lesson6;/** * 大屎蛋教程網-localhost * <p> * Java教程基礎篇: 6. Java運算符 * Java算數運算符 */public class Demo1 { public static void main(String[] args) { /** 加`+`*/ int a = 1; int b = 2; int c = a + b; System.out.println(c); /** 減`-`*/ a = 1; b = 2; c = a - b; System.out.println(c); /** 乘`*` */ a = 1; b = 2; c = a * b; System.out.println(c); /** 除-取模`/`對整數取模運算,相當於取結果的整數,去掉餘數.*/ a = 1; b = 2; c = a / b; System.out.println(c); /** 除-取餘`%`對整數取餘運算,相當於取結果的餘數.*/ a = 1; b = 2; c = a % b; System.out.println(c); }}
輸出:
3 -1 2 0 1
③ Java複合運算符
複合運算符是一種簡寫. 以+=
爲例,表示加一個值再賦值給本身.常用的複合運算符:
+=
加法賦值
a += 1;// 等同於以下a = a + 1;
-=
減法賦值
b -= 1;// 等同於以下b = b - 1;
*=
乘法賦值
c *= 1;// 等同於以下c = c * 1;
/=
除法賦值
d /= 1;// 等同於以下d = d / 1;
%=
模運算賦值
e %= 1;// 等同於以下e = e % 1;
示例代碼:
package com.dashidan.lesson6;/** * 大屎蛋教程網-localhost * <p> * Java教程基礎篇: 6. Java運算符 * Java複合運算符 */public class Demo2 { public static void main(String[] args) { int a = 0; /** += 運算*/ a += 1; System.out.println(a); /** -= 運算*/ int b = 0; b -= 1; System.out.println(b); /** *= 運算*/ int c = 2; c *= 3; System.out.println(c); /** /= 運算*/ int d = 5; d /= 3; System.out.println(d); /** %= 運算*/ int e = 5; e %= 3; System.out.println(e); }}
輸出:
1 -1 6 1 2
④ Java自增,自減運算符
自增運算符++
, 自建運算符--
.原理一樣,以自增運算符爲例介紹.
分前綴式(如++i
)和後綴式(如i++
). 以自增運算符(++)爲例: 前綴式是先加1再使用,後綴式是先使用再加1.
單獨執行自增自減時前綴式,後綴式單獨執行結果一樣.道理同自增運算符,只是加1,變成了減1.
int i = 0;i++;System.out.println(i);int j = 0;++j;System.out.println(j);
放在運算過程中執行. 前綴,後綴放在運算過程中結果不同.
/** 後綴式*//** 初始化a和i*/a = 0;i = 0;a = i++;/** i使用前是0,此時i爲0不加1,a爲0. */System.out.println(a);/** 使用後i加1,i爲1*/System.out.println(i);
示例代碼:
package com.dashidan.lesson6;/** * 大屎蛋教程網-localhost * <p> * Java教程基礎篇: 6. Java運算符 * Java自增,自減運算符 */public class Demo3 { public static void main(String[] args) { /** 前綴,後綴單獨執行結果一樣*/ int i = 0; i++; System.out.println(i); int j = 0; ++j; System.out.println(j); /** 前綴,後綴放在運算過程中結果不同*/ /** 前綴式*/ int a = 0; i = 0; a = ++i; /** i使用前是0,此時i爲0不加1,a爲0. */ System.out.println(a); /** 使用後i加1,i爲1*/ System.out.println(i); /** 後綴式*/ /** 初始化a和i*/ a = 0; i = 0; a = i++; /** i使用前是0,此時i爲0不加1,a爲0. */ System.out.println(a); /** 使用後i加1,i爲1*/ System.out.println(i); }}
輸出:
1 1 1 1 0 1
倒數第二個輸出是`0`,這個就是後綴式的使用後計算導致的結果.
⑤ Java關係運算符
關係運算符用於比較兩個數值之間的大小. 其運算結果爲一個布爾值(boolean
),只有true
(真)和false
(假)兩個取值.
基本數據類型的關係運算符:
>
大於<
小於>=
大於或等於<=
小於或等於==
等於!=
不等於
示例代碼:
package com.dashidan.lesson6;/** * 大屎蛋教程網-localhost * <p> * Java教程基礎篇: 6. Java運算符 * Java關係運算符 */public class Demo4 { public static void main(String[] args) { int a = 0; int b = 0; boolean c = a > b; System.out.println(c); boolean d = a < b; System.out.println(d); boolean e = a == b; System.out.println(e); boolean f = a == b; System.out.println(f); }}
輸出:
false false true true
⑥ Java邏輯運算符
邏輯運算符主要用於進行條件真(true
)假(false
)運算.包括&&
(且), ||
(或),!
(異或) , ^
(非), instanceof
(判斷對象實例類型).
&&
且
兩目運算符,需要2個值參與運算. 符號兩邊的條件都爲true
,運算結果爲true
.如果任一條件爲false
,結果爲false
.
boolean a = true;boolean b = false;boolean c = a && b;// a和b裏不同時爲true,故`&&`運算的結果爲falseSystem.out.println(c);
||
或
兩目運算符,需要2個值參與運算. 符號兩邊的條如果任一條件爲true
,結果爲true
.如果都爲false
,結果爲false.
boolean a = true;boolean b = false;boolean c = a || b;// a和b裏面,a爲true,故`||`運算的結果爲trueSystem.out.println(c);
!
非
單目運算符
,需要1個值參與運算.得到與原布爾值相反的值. 原值爲true
,經過!
運算,得false
. 原值爲false
,經過!
運算,得true
.
boolean a = true;boolean c = !a;// c爲 a的相反值,即爲trueSystem.out.println(c);
^
異或
兩目運算符,需要2個值參與運算. 符號兩邊的布爾結果不同時,結果爲true.如果相同(同時爲true
,或者同時爲false
),結果爲false
.
boolean a = true;boolean b = false;boolean c = false;boolean d = a ^ b;boolean e = b ^ c;// a和b裏不同,故`^`運算的結果爲false,d爲falseSystem.out.println(d);// c和d裏同時爲false,故`^`運算的結果爲true,e爲trueSystem.out.println(e);
示例代碼:
package com.dashidan.lesson6;/** * 大屎蛋教程網-localhost * <p> * Java教程基礎篇: 6. Java運算符 * Java邏輯運算符 */public class Demo5 { public static void main(String[] args) { boolean a = true; boolean b = false; boolean c = a && b; /** a和b裏不同時爲true,故`&&`運算的結果爲false*/ System.out.println(c); a = true; b = false; c = a || b; /** a和b裏面,a爲true,故`||`運算的結果爲true*/ System.out.println(c); a = true; c = !a; /** c爲 a的相反值,即爲true*/ System.out.println(c); a = true; b = false; c = false; boolean d = a ^ b; boolean e = b ^ c; /** a和b裏不同,故`^`運算的結果爲false,d爲false*/ System.out.println(d); /** c和d裏同時爲false,故`^`運算的結果爲true,e爲true*/ System.out.println(e); }}
輸出:
false true false true false
⑦ Java條件運算符
由兩個符號組成?
和:
,要求有3個操作對象,所以也叫三目運算符.
a<b?a:b;
如果?
前邊的表達式(a<b)爲true
,取:
前邊的值,即a值. 如果?
前邊的表達式(a<b)爲false
,取:
後邊的值,即b值.
示例代碼:
package com.dashidan.lesson6;/** * 大屎蛋教程網-localhost * <p> * Java教程基礎篇: 6. Java運算符 * Java三目運算符 */public class Demo6 { public static void main(String[] args) { int a = 1; int b = 2; int c = a > b ? a : b; /** a > b 爲false,所以取":"後邊的值b賦值給c, 故c爲2.*/ System.out.println(c); }}
輸出:
2
⑧ Java運算符優先級
基本的原則是有括號先算括號裏的,然後先乘除後加減. 乘除都有時,從左往右依次計算. 加減從左往右依次計算. 示例代碼:
int a = 1;int b = 2;int c = 3;int d = a + b * c;/** 乘號的優先級比加號高, 先算b*c再加a,故d爲7*/System.out.println(d);
加減乘除混合, 示例代碼:
package com.dashidan.lesson6;/** * 大屎蛋教程網-localhost * <p> * Java教程基礎篇: 6. Java運算符 * Java運算符優先級 */public class Demo7 { public static void main(String[] args) { int a = 1; int b = 2; int c = 3; int d = a + b * c; /** 乘號的優先級比加號高, 先算b*c再加a,故d爲7*/ System.out.println(d); /** 加減乘除混合*/ a = 1; b = 2; c = 3; d = 4; d = a + b * c / d - 5; /** 乘號和除號的優先級比加號高, 先算乘除, 從左往右, b*c得6,d(值爲4),`6/4`得`1.5`.取模運算省去小數,`b*c/d`得1*/ /** 加減法從左往右計算,a+1-5得-3,賦值給d.故d爲-3.*/ System.out.println(d); }}
輸出:
7 -3
優先級 | 符號 | 名稱 | 結合性 |
1 | . | 點 | 從左到右 |
( ) | 圓括號 | 從左到右 | |
[ ] | 方括號 | 從左到右 | |
2 | + | 正號 | 從右到左 |
- | 負號 | 從右到左 | |
++ | 自增 | 從右到左 | |
- - | 自減 | 從右到左 | |
~ | 按位非/取補運算 | 從右到左 | |
! | 邏輯非 | 從右到左 | |
3 | * | 乘 | 從左到右 |
/ | 除 | 從左到右 | |
% | 取餘 | 從左到右 | |
4 | + | 加 | 從左到右 |
- | 減 | 從左到右 | |
5 | << | 左移位運算符 | 從左到右 |
>> | 帶符號右移位運算符 | 從左到右 | |
>>> | 無符號右移 | 從左到右 | |
6 | < | 小於 | 從左到右 |
<= | 小於或等於 | 從左到右 | |
> | 大於 | 從左到右 | |
>= | 大於或等於 | 從左到右 | |
instanceof | 對象是否屬於指定的類 | 從左到右 | |
7 | == | 等於 | 從左到右 |
!= | 不等於 | 從左到右 | |
8 | & | 按位與 | 從左到右 |
9 | | | 按位或 | 從左到右 |
10 | ^ | 按位異或 | 從左到右 |
11 | && | 短路與 | 從左到右 |
12 | || | 短路或 | 從左到右 |
13 | ?: | 條件運算符 | 從右到左 |
14 | = | 賦值運算符 | 從右到左 |
+= | 混合賦值運算符 | ||
-= | |||
*= | |||
/= | |||
%= | |||
&= | |||
|= | |||
^= | |||
<<= | |||
>>= | |||
>>>= |
⑨ 相關文章