- 首頁(yè)|
- 網(wǎng)校|
- 焚題庫(kù)|
- APP |
-
微信公眾號(hào)
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 所示:
圖 1 鍵盤輸入58
圖 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。
初級(jí)會(huì)計(jì)職稱中級(jí)會(huì)計(jì)職稱經(jīng)濟(jì)師注冊(cè)會(huì)計(jì)師證券從業(yè)銀行從業(yè)會(huì)計(jì)實(shí)操統(tǒng)計(jì)師審計(jì)師高級(jí)會(huì)計(jì)師基金從業(yè)資格稅務(wù)師資產(chǎn)評(píng)估師國(guó)際內(nèi)審師ACCA/CAT價(jià)格鑒證師統(tǒng)計(jì)資格從業(yè)
一級(jí)建造師二級(jí)建造師消防工程師造價(jià)工程師土建職稱房地產(chǎn)經(jīng)紀(jì)人公路檢測(cè)工程師建筑八大員注冊(cè)建筑師二級(jí)造價(jià)師監(jiān)理工程師咨詢工程師房地產(chǎn)估價(jià)師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評(píng)價(jià)土地登記代理公路造價(jià)師公路監(jiān)理師化工工程師暖通工程師給排水工程師計(jì)量工程師
人力資源考試教師資格考試出版專業(yè)資格健康管理師導(dǎo)游考試社會(huì)工作者司法考試職稱計(jì)算機(jī)營(yíng)養(yǎng)師心理咨詢師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級(jí)職稱護(hù)士資格證初級(jí)護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實(shí)踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗(yàn)技師臨床醫(yī)學(xué)理論中醫(yī)理論