最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 三元操作符用法說明

 更新時(shí)間:2020年10月20日 10:19:05   作者:Jachin  
這篇文章主要介紹了java 三元操作符用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

由?:符號表示的,具體的含義其實(shí)就和if-else結(jié)構(gòu)的含義差不多,這種運(yùn)算符會(huì)將某個(gè)條件作兩種處理,如果滿足條件的話就執(zhí)行第一個(gè)結(jié)果,如果不滿足的話就執(zhí)行另外一個(gè)結(jié)果,例如:

Int A,B,C;

A=2;

B=3;

C=A>B ? 100 :200;

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

一、比較運(yùn)算符

又叫關(guān)系運(yùn)算符,用于判斷兩個(gè)被操作數(shù)的大小及是否相等的關(guān)系。使用比較運(yùn)算符其返回結(jié)果一定為布爾值。

運(yùn)算符

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

范例

結(jié)果

==

相等于

4==3

false

!=

不等于

4!=3

true

<

小于

4<3

false

>

大于

4>3

true

<=

小于等于

4<=3

false

>=

大于等于

4>=3

true

二、邏輯運(yùn)算符

用于計(jì)算兩個(gè)布爾值經(jīng)過指定邏輯后的運(yùn)算結(jié)果,每個(gè)邏輯運(yùn)算符都是一種邏輯運(yùn)算規(guī)則。邏輯是在中學(xué)數(shù)學(xué)中學(xué)習(xí)的概念,是判斷是非關(guān)系的運(yùn)算。

所以邏輯運(yùn)算符操作的均為布爾值:true與false

運(yùn)算符

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

范例

結(jié)果

&

false&true

false

|

false|true

true

^

異或

true^flase

true

!

!true

flase

&&

短路與

false&&true

false

||

短路或

false||true

true

邏輯運(yùn)算符通常連接兩個(gè)其他表達(dá)式計(jì)算后的布爾值結(jié)果

&&和&以及||和|的區(qū)別:當(dāng)使用短路與或者短路或時(shí),只要能判斷出結(jié)果則后邊的部分就不再判斷。

三、三元運(yùn)算符

用來完成簡單的選擇邏輯,即根據(jù)條件判斷,從兩個(gè)選擇中選擇一種執(zhí)行。

使用格式:

(條件表達(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 ,那樣會(huì)打印兩個(gè)97
System.out.print( !bool ? num : ch);

這段代碼打印的是 a97 。

很顯然,第二點(diǎn)的規(guī)則應(yīng)用到第一個(gè)打印上了,返回的是char,第三點(diǎn)的規(guī)則應(yīng)用到第二個(gè)打印上了,返回的是int 。但是誰會(huì)在乎這個(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);
 }

以上就是個(gè)人的一點(diǎn)小心得,希望大家多多支持腳本之家~~有些內(nèi)容可以參考條件表達(dá)式規(guī)范[JLS 15.25]

相關(guān)文章

  • Java 多線程Synchronized和Lock的區(qū)別

    Java 多線程Synchronized和Lock的區(qū)別

    這篇文章主要介紹了Java 多線程Synchronized和Lock的區(qū)別,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • Java基礎(chǔ)之Thymeleaf的簡單使用

    Java基礎(chǔ)之Thymeleaf的簡單使用

    這篇文章主要介紹了Java基礎(chǔ)之Thymeleaf的簡單使用,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • java開發(fā)就業(yè)信息管理系統(tǒng)

    java開發(fā)就業(yè)信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java開發(fā)就業(yè)信息管理平臺(tái),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 詳解DES加密算法及在Java程序中的使用示例

    詳解DES加密算法及在Java程序中的使用示例

    這篇文章主要介紹了詳解DES加密算法及在Java程序中的使用示例,文中還有一個(gè)用Java實(shí)現(xiàn)的DES三重加密的例子,需要的朋友可以參考下
    2016-04-04
  • 關(guān)于Java并發(fā)編程中線程間協(xié)作的兩種方式

    關(guān)于Java并發(fā)編程中線程間協(xié)作的兩種方式

    這篇文章主要介紹了關(guān)于Java并發(fā)編程中線程間協(xié)作的兩種方式,當(dāng)隊(duì)列滿時(shí),生產(chǎn)者需要等待隊(duì)列有空間才能繼續(xù)往里面放入商品,而在等待的期間內(nèi),生產(chǎn)者必須釋放對臨界資源的占用權(quán),這是消費(fèi)者模式,需要的朋友可以參考下
    2023-07-07
  • Java中的運(yùn)算符有哪些詳解

    Java中的運(yùn)算符有哪些詳解

    這篇文章主要給大家介紹了關(guān)于Java中運(yùn)算符有哪些的相關(guān)資料,包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、增量運(yùn)算符和自增/自減運(yùn)算符,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Mybatis?一級緩存和二級緩存原理區(qū)別

    Mybatis?一級緩存和二級緩存原理區(qū)別

    這篇文章主要介紹了Mybatis?一級緩存和二級緩存原理區(qū)別?,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • SpringBoot嵌入式Servlet容器與定制化組件超詳細(xì)講解

    SpringBoot嵌入式Servlet容器與定制化組件超詳細(xì)講解

    這篇文章主要介紹了SpringBoot嵌入式Servlet容器與定制化組件的使用介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-10-10
  • Java中對List集合的常用操作詳解

    Java中對List集合的常用操作詳解

    下面小編就為大家?guī)硪黄狫ava中對List集合的常用操作詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • Spring Bean生命周期之Bean元信息的配置與解析階段詳解

    Spring Bean生命周期之Bean元信息的配置與解析階段詳解

    這篇文章主要為大家詳細(xì)介紹了Spring Bean生命周期之Bean元信息的配置與解析階段,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評論

金秀| 永年县| 嫩江县| 沛县| 乐山市| 天柱县| 青海省| 长兴县| 通州市| 绥棱县| 九台市| 陕西省| 赤峰市| 富蕴县| 鹤庆县| 乌鲁木齐市| 漳平市| 永嘉县| 清原| 潜江市| 莲花县| 安溪县| 常州市| 宜君县| 新平| 天水市| 湘西| 北安市| 鄄城县| 巴林左旗| 镇平县| 乳源| 逊克县| 肥西县| 无棣县| 建瓯市| 攀枝花市| 米林县| 自贡市| 克拉玛依市| 额敏县|