大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

輕松學(xué)會三目運(yùn)算符

更新時(shí)間:2020-10-13 17:16:32 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1279次

三目運(yùn)算符又稱三元運(yùn)算符,用來完成簡單的選擇邏輯,即根據(jù)條件判斷,從兩個(gè)選擇中選擇一種執(zhí)行。


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

Int A,B,C;

A=2;

B=3;

C=A>B ? 100 :200;

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

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

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

運(yùn)算規(guī)則:

a) 判斷條件表達(dá)式,結(jié)果為一個(gè)布爾值。

b) true,運(yùn)算結(jié)果為表達(dá)式1

c) false,運(yùn)算結(jié)果為表達(dá)式2

如:

int a = 10; int b = 20;

a==b?10:20; 結(jié)果為20


首先看一下三元運(yùn)算符的格式:

[條件語句] ? [表達(dá)式1] : [表達(dá)式2]

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

int a = 1;

Integer b = 2;

boolean c = ture;

int d = c ? b : a;

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

String str = "abc";

StringBuilder strbu = new StringBuilder("def");

boolean boo = true;

CharSequence cs = boo ? str : strbu;

因?yàn)镾tring和StringBuilder都實(shí)現(xiàn)了CharSequence這個(gè)接口。


確定條件表達(dá)式結(jié)果類型的規(guī)則的核心是以下3點(diǎn):

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

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

3.否則,將對操作數(shù)類型進(jìn)行二進(jìn)制數(shù)字提升,而條件表達(dá)式的類型就是第二個(gè)和第三個(gè)操作數(shù)被提升之后的類型

以上的三點(diǎn)可以用如下的代碼來幫助理解:

char ch = 'a';

int num = 0 ;

boolean bool = true;

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

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

這段代碼打印的是a97。很顯然,第二點(diǎn)的規(guī)則應(yīng)用到第一個(gè)打印上了,返回的是char,第三點(diǎn)的規(guī)則應(yīng)用到第二個(gè)打印上了,返回的是int。但是誰會在乎這個(gè)順序?qū)е碌拇蛴〗Y(jié)果,所以為了避免不必要的麻煩,很顯然顯式強(qiáng)制類型轉(zhuǎn)換是個(gè)很不錯(cuò)的選擇 。


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);

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

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);

}


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


提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 中文字幕日韩精品中文区 | 国产在线公开视频 | 亚洲国产综合在线 | 国产精品社区 | 狠狠色噜噜狠狠狠狠91 | 一个色综合亚洲色综合 | 亚洲国产图片 | 成人午夜视频网站 | 国产精品久久亚洲一区二区 | 日韩精品中文字幕久久 | 9re视频这里只有精品 | 亚洲爽爽| 久久久小视频 | 国产a久久精品一区二区三区 | 最新国产午夜精品视频成人 | 欧美成人高清免费大片观看 | 久青草国产在视频在线观看 | 亚洲一级毛片免费在线观看 | 黄色一级片免费网站 | japanese成人 | 欧美成人私人视频88在线观看 | 国产欧美视频一区二区三区 | 国产精品免费久久久久影院小说 | 久久久久久网 | 51国产午夜精品免费视频 | 国产精品久久久久久久久久久不卡 | 久久免费精品一区二区 | 亚洲第一成年人网站 | 一区二区三区欧美视频 | 国产一区二区在线观看视频 | 久久国产香蕉一区精品 | 在线播放人成午夜免费视频 | 久久国产视频网 | 免费观看一级毛片 | 精品久久久日韩精品成人 | 福利视频自拍 | 中文字幕在线激情日韩一区 | 日本精品中文字幕在线不卡 | 亚洲国产精品久久久久666 | 色妞www精品视频 | 九九九国产视频 |