Java中什么是三目運(yùn)算符,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站制作、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),惠陽(yáng)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:惠陽(yáng)等地區(qū)。惠陽(yáng)做網(wǎng)站價(jià)格咨詢:18982081108Java提供了一個(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)算符。
intx,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)化程序代碼,使程序更加易讀。
例如下面的表達(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)代碼如下:
publicclassTest9{
publicstaticvoidmain(String[]args){
intx,y,z;//聲明三個(gè)變量
System.out.print("請(qǐng)輸入一個(gè)數(shù):");
Scannerinput=newScanner(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);
}
}
在該程序中,首先輸入x的值為58,然后判斷x的值是否大于5,顯然條件是成立,則y的值為x,即y=58。接著判斷y的值是否大于x,因?yàn)閥的值和x的值都為58,所以該條件是不成立的,則z=5。再次輸入x的值為4,然后判斷x的值是否大于5,不成立,則y=-4;接著判斷y的值是否大于x,不成立,則z=5。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。