国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[Java入門筆記]Java語言基礎(三):運算符

2019-11-14 14:57:10
字體:
來源:轉載
供稿:網友

簡介

運算符是一種特殊的符號,運算符是通過一定的運算規則操作一個或多個操作數,并生成結果的特定符號,運算符和操作數的有效組合稱為表達式。

java中運算符主要分為以下幾類:

  • 賦值運算符
  • 算術運算符
  • 關系運算符
  • 邏輯運算符
  • 條件運算符(三目運算符)
  • 位運算符

賦值運算符

賦值運算符用于給變量或者常量指定值,賦值運算符的符號是"="。

int a = 1;  //定義時直接賦值int b;int c;b = c = 2;  //可以在一個語句內為多個變量賦值int d = b + 3;   //變量運算后再賦值,先執行右邊,再執行左邊

算術運算符

Java支持加減乘除和求余等基本數學運算。分別是以下幾種:

運算符

說        明

一元

-

一元減,即取負

++

自增,如:++a等價于a = a + 1

--

自減,如:--a等價于a = a – 1

二元

+

加法,返回兩個操作數的和

-

減法,返回兩個操作數的差

*

乘法,返回兩個操作數的積

/

除法,返回兩個操作數的商

%

取模,返回兩個操作數整除后的余數

加法運算符:+

double a = 1.1;double b = 1.2;double sum = a + b;System.out.PRintln(sum);  //輸出2.3

減法運算符:-

double a = 2.2;double b = 1.1;double sub = a - b;System.out.println(sub);  //輸出1.1

乘法運算符:*

int a = 11;double b = 1.2;double multiply = a * b;System.out.println(multiply);  //輸出1.32

除法運算符:/

除法運算符有點特殊:如果運算的兩個值都是int,得到的結果也是int類型,會把小數點直接去掉,也不會四舍五入

int a = 10;int b = 4;double c = a/b;System.out.println(c);  //10初4本來結果是2.5,但是兩個int類型數相除結果是int類型數,盡管將結果值賦給了double,
              //但輸出結果變成了2.0,相當于運算完成時將小數點給去了,再轉換為2.0
double a2 = 5.2;double b2 = 3.1;double c2 = a2/b2;System.out.println(c2); //兩個double值運算,輸出結果:1.6774193548387097System.out.println(5 / 0.0); //除數為double型0.0,輸出負無窮大System.out.println(5 / 0); //除數為0,運行時會報錯

求余運算符:%

int a = 5;int b = 3;double c = 3.2;System.out.println(a%b);  //輸出2System.out.println(a%c);  //1.7999999999999998System.out.println(0%5);  //輸出0System.out.println(5%0);  //運行會出錯

求負:-

int i = -1;int i2 = -i;System.out.println(i2);  //輸出1

自加:++

int i = 1;i++;  //相當于將i的值加1;System.out.println(i); //輸出2

自加符號既可以放在變量前面,也可以放在變量后面,放在前面先把操作數加1,再進行表達式的運算,放在后面則相反。

int i1 = 1;int i2 = 1;int i3 = i1++;  //此時i3的值為1,i1的值為2;它是先將i1的值賦給了i3,再將i1加1;int i4 = ++i2;  //此時i4的值為2,i2的值也為2;它是先將i2的值加1,再將值賦給i4;

自減:--

作用類似于自加

int i1 = 1;int i2 = 1;int i3 = i1++;  //此時i3的值為1,i1的值為0;它是先將i1的值賦給了i3,再將i1減1;int i4 = ++i2;  //此時i4的值為0,i2的值也為0;它是先將i2的值減1,再將值賦給i4;

關系運算符(比較運算符)

關系運算符可以測試兩個操作數之間的關系(但不會改變操作數的值),關系表達式的結果為boolean型true/false:

運算符

說        明

==

等于,檢查兩個操作數是否相等

!=

不等于,檢查兩個操作數是否不相等

>

大于,檢查左操作數是否大于右操作數

>=

大于等于,檢查左操作數是否大于或等于右操作數

<

小于,檢查左操作數是否小于右操作數

<=

小于等于,檢查左操作數是否小于或等于右操作數

System.out.println(4 == 4);  //結果為trueSystem.out.println(4 != 3);  //結果為trueSystem.out.println(true == false);  //結果為false

邏輯運算符

邏輯運算符用于操作boolean類型的變量或常量

運算符

說        明

Java

一元

!

邏輯非(NOT)

二元

&

邏輯與(AND)(不短路)

左邊為false,依然會運算右邊

 

|

邏輯或(OR)

如左操作數為true,依然運算右邊操作數

&&

短路與

如左操作數為false,則不運算右操作數

||

短路或

如左操作數為true,則不運算右操作數

^

異或

當兩個操作數不同時返回true,相同則返回false

看例子

System.out.println(!true);  //結果為falseSystem.out.println(2 > 1 && 1 > 1); //結果為falseSystem.out.println(2 > 1 || 1 > 1); //結果為trueSystem.out.println(true ^ false);  //結果為true,異或,相當于把第一個前面一個值true取反,再進行“或”運算

 

下面我們來看一下 |于||的區別

int a = 1;int b = 1;if(a == 1 | b++ > 1){    System.out.println(b);  //輸出b的值為2,按位或雖然|符號左邊結果為true,但依然會執行|符號右邊的代碼}

 

 將|改為||

int a = 1;int b = 1;if(a == 1 || b++ > 1){    System.out.println(b);  //輸出b的值為1,||符號左邊結果為true,不會再執行||符號右邊的代碼}

 

 條件運算符(三目運算符)

它的一般形式是:

  表達式1 ? 表達式2 : 表達式3

根據表達式1的結果來判斷執行表達式2還是表達式3,如果表達式1的結果為true,則執行表達式2,否則執行表達式3;
條件運算符在某些情況下能夠替代小型的if…else語句。
String s = 1 > 2 ? "1大于2" : "1不大于2";System.out.println(s); //輸出 1不大于2

位運算符

位運算符既參加運算的兩個數據,按二進制位進行運算。Java的位運算符有如下7個:按位與(&)、按位或(|)、按位非(~)、按位異或(^)、左移運算符(<<)、右移運算符(>>)、無符號右移運算符(>>>)。

具體介紹可以參考下面這篇文章:

http://www.survivalescaperooms.com/yezhenhan/archive/2012/06/20/2555849.html

 

運算符的優先級

很多情況下,一個表達式由多個運算符組成,優先級決定運算符的計算順序:

優先級

運    算    符

1

括號: ()和[]

2

一元運算符:-、++(前置)、--(前置)、!

3

算術運算符:*、/、%、+和-

4

關系運算符:>、>=、<、<=、==和!=

5

邏輯運算符:&、|、&&和||

6

條件運算符:? :

7

賦值運算符:=、*=、/=、%=、+=和-=

盡管運算符有優先級,一個表達式中會根據表達式運算符的優先級進行先后運算,但是在實際編程中如果一個表達式很長也不會推薦這樣寫,而是分為幾步寫,因為寫在一起可讀性太差。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 治县。| 昌都县| 社旗县| 盐池县| 招远市| 宁化县| 翁牛特旗| 滨州市| 清苑县| 三明市| 永定县| 新安县| 宾川县| 南靖县| 肇东市| 股票| 哈巴河县| 永昌县| 车致| 焦作市| 荃湾区| 洞口县| 涿州市| 名山县| 曲阳县| 五河县| 台中市| 长白| 青河县| 塔河县| 乌兰察布市| 柳州市| 绥阳县| 秦皇岛市| 诸暨市| 广安市| 新源县| 林州市| 胶南市| 三原县| 土默特左旗|