day02(下)_运算符
?
首先了解java運算符的優(yōu)先級和結(jié)合性:
?
常用轉(zhuǎn)義字符表:
????
示例1 取余/字符串/轉(zhuǎn)義字符:
class operator1 {public static void main(String[] args){//取余System.out.println(-1%5);//-1System.out.println(1%-5);//1與左邊的操作數(shù)同號System.out.println(3.1%2.5);//字符串:字符串?dāng)?shù)據(jù)和任何數(shù)據(jù)使用+都是相連接//,最終變成字符串System.out.println("ab"+5+5);//"ab55"int a=3,b=4;System.out.println("a="+a+",b="+b);//"a=3,b=4"(加雙引號表示其為字符串)//轉(zhuǎn)義字符:每一個轉(zhuǎn)義字符是一個單一字符 '\n'System.out.println("java\rev");//evvaSystem.out.println("java\nev");//java//evSystem.out.println("\\n");//"\n"char ch='好';//一個中文2byte,char型2byteSystem.out.println(ch);System.out.println("& "+(12&23));//4//System.out.println("&& "+(12&&23));//錯誤,不能用于非boolean類型運算System.out.println("^ "+(12^23));//27System.out.println("^ "+(true^false));//true//^,&既能用于數(shù)值運算,也可以用于boolean型運算}}運行結(jié)果:
在以上的例子中注意'\r'和'\n'區(qū)別:\n 是回車+換行 把光標(biāo) 先移到 行首 然后換到下一行 也就是 下一行的行首拉
\r 就是return 回到 本行 行首 這就會把這一行以前的輸出 覆蓋掉
\t:一個"制表區(qū)"占8列.
參考文章:http://hane00.blog.163.com/blog/static/1600615220126204446809/
示例二:賦值運算符/位運算符
class operator2 {public static void main(String[] args){//+=,/=,*=......short s=5;//s=s+5;//報錯,s+5結(jié)果為int,不能賦值給short型(做了兩次運算)s += 5;//成功,原因:首先做了一次運算:把左右兩邊的和//賦值給左邊,和short s=5;類似.+=運算符給s賦值時自動完成//強轉(zhuǎn)操作System.out.println("s="+s);//關(guān)于^:假設(shè)兩個數(shù)a,b,則有:a^b^b=a,應(yīng)用到兩數(shù)交換int a=4,b=5;a=a^b;b=a^b;//相當(dāng)于(a^b)^b為a,賦值給了ba=a^b;//相當(dāng)于(a^b)^a為b,賦值給了aSystem.out.println("a="+a+",b="+b);//一般仍采用第三方變量(temp)進行交換}}運行結(jié)果:
示例3:條件運算符結(jié)果類型
class operator3 {public static void main(String[] args) {char x='X';//對int類型的常量進行測試int i=12;System.out.println(true?x:12);//XSystem.out.println(true?x:i);//88//對long類型的常量進行測試long l=12L;System.out.println(true?x:12L);//88System.out.println(true?x:l);//88//對float類型的常量進行測試double d=12.0;System.out.println(true?x:12.0);//88.0System.out.println(true?x:d);//88.0}}
運行結(jié)果:
確定條件表達式結(jié)果類型的規(guī)則過于冗長和復(fù)雜,很難完全記住它們,但是其核心就是一下三點:
- 如果第二個和第三個操作數(shù)具有相同的類型,那么它就是條件表達式的類型。換句話說,你可以通過繞過混合類型的計算來避免大麻煩。
?
- 如果一個操作數(shù)的類型是T,T表示byte、short或char,而另一個操作數(shù)是一個int類型的常量表達式,它的值是可以用類型T表示的,那么條件表達式的類型就是T。
?
- 否則,將對操作數(shù)類型運用二進制數(shù)字提升,而條件表達式的類型就是第二個和第三個操作數(shù)被提升之后的類型。
關(guān)于第三點:個人理解為應(yīng)該向? 占用字節(jié)多(精度高)的類型 提升
還有一點:三元運算符運算完必須要有結(jié)果.
?? 例如:
?????? 20>10?System.out.println("20"):System.out.println("10");//運行失敗,但是C語言可以.
原文地址:http://www.cnblogs.com/gw811/archive/2012/10/28/2743586.html
?
最后總結(jié)一下if-else和switch什么時候用?
? 具體數(shù)值判斷,數(shù)值不多,而是符合 char,short,byte,int(switch可選擇的類型,隨著JDK版本提升,可能會添加一些類型(字符串,枚舉))
?? 建議用switch,效率稍高,因為switch列出了所有可能.
?
?? 其它情況,對區(qū)間判斷,對結(jié)果為boolean型判斷,用if,if使用范圍更廣
???
?
?
??
----android培訓(xùn) 、java培訓(xùn)、期待與您交流!----
轉(zhuǎn)載于:https://www.cnblogs.com/yiqiu2324/archive/2013/01/14/2859380.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的day02(下)_运算符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 制作vb dll的总结
- 下一篇: 苹果为万元显示器Studio Displ