黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 輕松學會三目運算符

輕松學會三目運算符

更新時間:2020-10-13 17:16:32 來源:動力節點 瀏覽1273次

三目運算符又稱三元運算符,用來完成簡單的選擇邏輯,即根據條件判斷,從兩個選擇中選擇一種執行。


由?:符號表示的,具體的含義其實就和if-else結構的含義差不多,這種運算符會將某個條件作兩種處理,如果滿足條件的話就執行第一個結果,如果不滿足的話就執行另外一個結果,開門見山,我們先通過一個簡單的例子來認識一下三目運算符:

Int A,B,C;

A=2;

B=3;

C=A>B ? 100 :200;

這條語句的意思是,如果A>B的話,就將100賦給C,否則就將200賦給C;

我們通過上面的例子不難得出三目運算符的使用格式:

(條件表達式)?表達式1:表達式2;

運算規則:

a) 判斷條件表達式,結果為一個布爾值。

b) true,運算結果為表達式1

c) false,運算結果為表達式2

如:

int a = 10; int b = 20;

a==b?10:20; 結果為20


首先看一下三元運算符的格式:

[條件語句] ? [表達式1] : [表達式2]

其中如條件語句為真執行表達式1,否則執行表達式2.簡單的例子就不舉了,來點其它的。在JDK1.5以前的版本中,表達式1和表達式2都要求是相同的類型,比如都是String或者char之類的,在JDK1.5以后,有了自動拆箱和裝箱的原因,兩者只要其中一種或者兩者都能被拆箱即可,比如表達式1為Integer,而表達式2為int類型的,比如如下

int a = 1;

Integer b = 2;

boolean c = ture;

int d = c ? b : a;

還有個需要注意的是,如果表達式1和表達式2的類型不相同,那么他們需要對交集類型的自動參考轉換。例如如下這段代碼:

String str = "abc";

StringBuilder strbu = new StringBuilder("def");

boolean boo = true;

CharSequence cs = boo ? str : strbu;

因為String和StringBuilder都實現了CharSequence這個接口。


確定條件表達式結果類型的規則的核心是以下3點:

1.如果表達式1和表達式2操作數具有相同的類型,那么它就是條件表達式的類型。

2.如果一個表達式的類型是byte、short、char類型的,而另外一個是int類型的常量表達式,且它的值可以用類型byte、short、char三者之一表示的,那么條件表達式的類型就是三者之一

3.否則,將對操作數類型進行二進制數字提升,而條件表達式的類型就是第二個和第三個操作數被提升之后的類型

以上的三點可以用如下的代碼來幫助理解:

char ch = 'a';

int num = 0 ;

boolean bool = true;

System.out.print( bool ? ch : 0);  //這里不是 bool ? ch : num ,那樣會打印兩個97

System.out.print( !bool ? num : ch);

這段代碼打印的是a97。很顯然,第二點的規則應用到第一個打印上了,返回的是char,第三點的規則應用到第二個打印上了,返回的是int。但是誰會在乎這個順序導致的打印結果,所以為了避免不必要的麻煩,很顯然顯式強制類型轉換是個很不錯的選擇 。


char ch = 'a';

int num = 0 ;

boolean bool = true;

System.out.print( bool ? (char)ch : (char)0);

System.out.print( !bool ? (int)num : (int)ch);

還有值得注意的是 表達式1 和 表達式2 不一定非得是數據類型,還可以是自己定義的方法,只要方法有返回值就行。例如

static int test1(int i) {

i += 1;

return i;

}

static int test2(int i) {

i += 2;

return i;

}

public static void ternary() {

boolean boo = false;

int c = boo ? test1(1) : test2(2);

}


怎么樣,看完了本文是不是覺得三目運算符竟然比想象的還要簡單,通過幾個例子,很容易就掌握三目運算符的規則和用法。其實,這些Java基礎知識都是如此簡單,只不過我們沒有掌握到正確的學習方法和學習資料,在本站的Java零基礎教程中,這些都免費分享給你哦!


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 污污视频在线观看黄 | 午夜一级黄色片 | 久久精品a亚洲国产v高清不卡 | a一级毛片录像带 录像片 | www视频免费观看 | 一个人看的www视频免费观看 | 黄色免费看网站 | 日本系列 1页 亚洲系列 | 下面一进一出好爽视频 | 国产成人永久在线播放 | 国产日韩欧美一区二区三区视频 | 精品国产一区二区三区四 | 亚洲成在人线久久综合 | 在线免费观看色视频 | 久久尹人香蕉国产免费天天 | 中文国产欧美在线观看 | 成人国产激情福利久久精品 | 日本亚州视频在线八a | 日韩在线播放全免费 | 日韩亚洲国产综合久久久 | 日韩欧美在线视频观看 | 老司机免费福利午夜入口ae58 | 亚洲欧美精品综合中文字幕 | 天堂网免费视频 | 日韩不卡一区二区三区 | 久久综合狠狠综合久久97色 | 美女视频永久黄网站在线观看 | 日本三级视频网站 | 日韩大片免费看 | 老妇女黄色片 | 久久精品欧美一区二区 | 中文字幕欧美日韩 | 免看一级a毛片一片成人不卡 | 最新91| 亚欧中文字幕 | 日韩在线观看内窥镜 | 全黄一级裸片视频免费区 | 久久女同互慰一区二区三区 | 五月综合激情久久婷婷 | 成人免费视频观看无遮挡 | 欧美一区二区三区在线视频 |