day15.三元運算子,小結
三元運算子,小結
昨天已經學過了邏輯運算子和位運算子,今天呢,就講剩下偷懶的條件運算子以及擴充套件附值運算子
條件運算子:? ,:
擴充套件運算子:+= ,-= ,*= ,/=
擴充套件運算子
條件運算子就一個問號一個冒號,我們等下再講,先講這擴充套件運算子
我們直接進IDEA,建立一個新的class,名為Demo07寫個main方法,
我們先設個變數,int個a等於10,複製下來b等於20,然後在下面寫一個a+=b,然後輸出一下a,看看什麼意思
結果是30,然後我們在看看這個a+=b,這意思是不是a=a+b, 那a-b怎麼表達呢,是不是用**-=**來表示
這都是用來偷懶的,這樣一看是不是我們的工作量減少很多,但是,我們在學習的時候還是不要偷懶,等熟悉以後,再偷懶也不遲
這裡還要給大家擴充套件一個字串連線符,
我們之前學過,用輸出指令進行加減運算,
System.out.println(a+b)
System.out.println(""+a+b)
那如果我們在前面加個空的字串,輸出一下會怎麼樣
我們可以看到得出來的結果是30和1020,
沒加空字串的是正常運算,而加了空字串 **“ ”**的,它沒有去運算,直接輸出了,a跟b的結果是連起來的
我們這個加號兩側,只要有一邊出現了string型別就是空的字串 “ ”,它就會把另外的操作輸出都轉換為string再進行連線
這裡就會有一道面試題了
首先,輸出 a+b+" ",和輸出 “ ”+a+b,他會問你,這兩個會有什麼區別
可以看到,結果是1020和30,那為什麼呢,要知道,這都是有順序的,一個是先拼接,在計算,一個是先計算,在拼接,
字串後面的才會被拼接,前面的會被計算
三元運算子
講完擴充套件運算子,接下來我們將三元運算子,再先創一個Demo08,寫一個main方法
我們前面學的都是一元,二元運算子,那我們來學學三元運算子,在剛剛的條件運算子中我們看到是有一個問號和冒號
這是什麼意思呢,一句話概括
x ? y : z
如果x==true,則結果為y,否則結果為z
相當於x是個布林值,或者運算子,如果x等於true,那結果就是y,如果x等於false,那結果就是z
這三元運算子也是個偷懶的,那我們先做個測試
先int一個score等於80,再往下照著上面的格式寫,
int score = 80;
score < 60 ? “不及格” : “及格”;
如果score小於60,就輸出不及格,如果score大於60,就輸出及格,
然後在前面加上String的類,加上變數名:type,然後再輸出一下type,看看會怎麼樣
那有人問了,為什麼要加上String,加別的不可以嗎,要注意,後面的及格合不及格是文字,當然要用字串輸出啦,不然你用int試一下,或者用char
結果輸出了及格,可以看到這個格式是沒錯的,那如果把score改成50,那是不是就輸出不及格了呀,邏輯是差不多的
等到我們學習到流程控制的時候,會學到if,這兩個和之前學的布林值擴充套件是一個道理的,只是這個比較偷懶,在學習的時候是不建議去用的,
雖然比較偷懶,不建議去用,但是我們必須掌握,包括上面的擴充套件運算子,因為在工作中是比較常用到的,而且這個可以讓程式碼更加精簡,便於理解
學完這些,我們再回到運算子
我們再小學的時候都學習過,運算的優先順序,先乘除後加減
在java裡,等級最高的是一元運算子,過了就是加減乘除,然後一級一級往下
在使用的時候,大家就會發現,不需要去刻意的記住,表示式裡面,有就優先使用括號來組織,為了大家方便只用,多打一點括號不影響對程式碼的理解,反而會更清楚
這個優先順序就當做作業,有時間就一個一個去試,看一下a+b,a-b會先出來什麼東西的,我們一般都會使用括號,弄得明明白白
相關文章
- java小記-三元運算子Java
- 三元運算子
- php運算子 比較運算子 邏輯運算子 三元運算子PHP
- JavaScript 三元運算子JavaScript
- python 的三元運算子Python
- vue中的三元運算子Vue
- 運算子的關係,什麼叫一元運算子,二元運算子,三元運算子,運算子優先順序,以及運算子的
- Lua騷操作——三元條件運算子
- Go 憑什麼不支援三元運算子?Go
- java零基礎自學第一天②,運算子:表示式,算術運算子,+操作,賦值運算子,自增自減運算子,關係運算子,邏輯運算子,三元運算子Java賦值
- 碎片化學習Java(八)-- Java三元運算子Java
- 碎片化學習Java(九)-- Java三元運算子Java
- php7中的三元運算子的區別PHP
- 為什麼 Go 語言沒有三元運算子Go
- 各語言中的三元運算子與 golang 對比Golang
- JavaScript (<) 小於運算子JavaScript
- 為什麼golang中不存在三元運算子Golang
- 為什麼 Python、Go 和 Rust 都不支援三元運算子?PythonGoRust
- java02-5 if語句和三元運算子的轉換Java
- 運算子 運算子
- SXMYSQL 運算子總結rtlMySql
- 碎片化學習Java(十)-- Java三元運算子求最大年齡Java
- 運算子-賦值運算子賦值
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- 07-運算子和程式結構
- java運算子易錯點總結Java
- 運算子
- C#中的?.和!.運算子(連結)C#
- 算術運算子裡的特殊運算子
- javascript中&&運算子和||運算子的使用JavaScript
- Python 運算子優先順序 運算子Python
- Python學習-算術運算子,賦值運算子和複合運算子Python賦值
- php運算子運用之型別運算子該如何使用PHP型別
- C++ 迭代器運算子 箭頭運算子->C++
- javaSE練習--運算子和條件結構Java
- 位運算子
- SHELL運算子