华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java教程 >> 文章內(nèi)容

Java三目運(yùn)算符(條件運(yùn)算符?:)

來(lái)源:中華考試網(wǎng)  [2020年10月20日]  【

  Java 提供了一個(gè)特別的三元運(yùn)算符(也叫三目運(yùn)算符)經(jīng)常用于取代某個(gè)類型的 if-then-else 語(yǔ)句。條件運(yùn)算符的符號(hào)表示為“?:”,使用該運(yùn)算符時(shí)需要有三個(gè)操作數(shù),因此稱其為三目運(yùn)算符。使用條件運(yùn)算符的一般語(yǔ)法結(jié)構(gòu)為:

  result = ? : ;

  其中,expression 是一個(gè)布爾表達(dá)式。當(dāng) expression 為真時(shí),執(zhí)行 statement1, 否則就執(zhí)行 statement3。此三元運(yùn)算符要求返回一個(gè)結(jié)果,因此要實(shí)現(xiàn)簡(jiǎn)單的二分支程序,即可使用該條件運(yùn)算符。

  下面是一個(gè)使用條件運(yùn)算符的示例。

  int x,y,z;x = 6,y = 2;z = x>y ? x-y : x+y;

  在這里要計(jì)算 z 的值,首先要判斷 x>y 表達(dá)的值,如果為 true,z 的值為 x-y;否則 z 的值為 x+y。很明顯 x>y 表達(dá)式結(jié)果為 true,所以 z 的值為 4。

  技巧:可以將條件運(yùn)算符理解為 if-else 語(yǔ)句的簡(jiǎn)化形式,在使用較為簡(jiǎn)單的表達(dá)式時(shí),使用該運(yùn)算符能夠簡(jiǎn)化程序代碼,使程序更加易讀。

  在使用條件運(yùn)算符時(shí),還應(yīng)該注意優(yōu)先級(jí)問(wèn)題,例如下面的表達(dá)式:

  x>y ? x-=y : x+=y;

  在編譯時(shí)會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤,因?yàn)闂l件運(yùn)算符優(yōu)先于賦值運(yùn)算符,上面的語(yǔ)句實(shí)際等價(jià)于:

  (x>y ? x-=y : x)+=y;

  而運(yùn)算符“+=”是賦值運(yùn)算符,該運(yùn)算符要求左操作數(shù)應(yīng)該是一個(gè)變量,因此出現(xiàn)錯(cuò)誤。為了避免這類錯(cuò)誤,可以使用括號(hào)“0”來(lái)加以區(qū)分。例如,下面是正確的表達(dá)式。

  (x>y) ? (x-=y): (x+=y);

  例 1

  在程序中聲明 3 個(gè)變量 x、y、z,并由用戶從鍵盤輸入 x 的值,然后使用條件運(yùn)算符向變量 y 和變量 z 賦值。 實(shí)現(xiàn)代碼如下:

  public class Test9 { public static void main(String[] args) { int x, y, z; // 聲明三個(gè)變量 System.out.print("請(qǐng)輸入一個(gè)數(shù):"); Scanner input = new Scanner(System.in); x = input.nextInt(); // 由用戶輸入x的值 // 判斷x的值是否大于5,如果是y=x,否則y=-x y = x > 5 ? x : -x; // 判斷y的值是否大于x,如果是z=y,否則z=5 z = y > x ? y : 5; System.out.printf("x=%d \n", x); System.out.printf("y=%d \n", y); System.out.printf("z=%d \n", z); }}

  保存程序并運(yùn)行,運(yùn)行效果如圖 1 和圖 2 所示:

鍵盤輸入58

  圖 1 鍵盤輸入58

鍵盤輸入4

  圖 2 鍵盤輸入4

  在該程序中,首先輸入 x 的值為 58,然后判斷 x 的值是否大于 5,顯然條件是成立,則 y 的值為 x,即 y=58。接著判斷 y 的值是否大于 x,因?yàn)?y 的值和 x 的值都為 58,所以該條件是不成立的,則 z=5。再次輸入 x 的值為 4,然后判斷 x 的值是否大于 5,不成立,則 y=-4;接著判斷 y 的值是否大于 x,不成立,則 z=5。

責(zé)編:fushihao
  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
米林县| 遂平县| 吴桥县| 浠水县| 永顺县| 古丈县| 双柏县| 周至县| 仪陇县| 泗洪县| 微博| 渝中区| 东至县| 沧州市| 察哈| 丰镇市| 同仁县| 和龙市| 岳普湖县| 金溪县| 信宜市| 会宁县| 大安市| 泰来县| 光泽县| 卓尼县| 绥阳县| 海丰县| 滨州市| 镶黄旗| 泽普县| 文山县| 桃源县| 怀远县| 湘西| 旅游| 晋江市| 西林县| 页游| 平度市| 阳西县|