乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      java三元運(yùn)算符

       instl 2018-07-11

      由?:符號(hào)表示的,具體的含義其實(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)算符

      用來完成簡(jiǎ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.簡(jiǎn)單的例子就不舉了,來點(diǎn)其它的。在JDK1.5以前的版本中,表達(dá)式1和表達(dá)式2都要求是相同的類型,比如都是String或者char之類的,在JDK1.5以后,有了自動(dòng)拆箱和裝箱的原因,兩者只要其中一種或者兩者都能被拆箱即可,比如表達(dá)式1為Integer,而表達(dá)式2為int類型的,比如如下

      1 int a = 1;
      2 Integer b = 2;
      3 boolean c = ture;
      4 int d = c ? b : a;

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

       

      1 String str = "abc";
      2 StringBuilder strbu = new StringBuilder("def");
      3 boolean boo = true;
      4 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 否則,將對(duì)操作數(shù)類型進(jìn)行二進(jìn)制數(shù)字提升,而條件表達(dá)式的類型就是第二個(gè)和第三個(gè)操作數(shù)被提升之后的類型

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

       

      1 char ch = 'a';
      2 int num = 0 ;
      3 boolean bool = true;
      4 System.out.print( bool ? ch : 0);  //這里不是 bool ? ch : num ,那樣會(huì)打印兩個(gè)97
      5 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ò)的選擇 -_-

       

      1 char ch = 'a';
      2 int num = 0 ;
      3 boolean bool = true;
      4 System.out.print( bool ? (char)ch : (char)0);
      5 System.out.print( !bool ? (int)num : (int)ch);

       

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

      復(fù)制代碼
      復(fù)制代碼
       1 static int test1(int i) {
       2         i += 1;
       3         return i;
       4 
       5     }   
       6 
       7     static int test2(int i) {
       8         i += 2;
       9         return i;
      10     }
      11 
      12     public static void ternary() {
      13         boolean boo = false;
      14         int c = boo ? test1(1) : test2(2);
      15     }
      復(fù)制代碼
      復(fù)制代碼

      以上就是個(gè)人的一點(diǎn)小心得~~有些內(nèi)容可以參考條件表達(dá)式規(guī)范[JLS 15.25]

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多