淺談Java三目運算
三目條件運算公式為 x?y:z 其中x的運算結(jié)果為boolean類型,先計算x的值,若為true,則整個三目運算的結(jié)果為表達(dá)式y(tǒng)的值,否則整個運算結(jié)果為表達(dá)式z的值
例:String s="";
String x="默認(rèn)值";
s=s.isEmpty()?x:s;
這段代碼的意思是:先判斷s是否為空(結(jié)果是空),然后執(zhí)行s=x,即執(zhí)行x
再來一個復(fù)雜點的
class Dates { int year,month,day; Dates(int x,int y,int z){ year=x; month=y; day=z; } public static int compare(Dates a){ return year>a.year?1 :year<a.year?-1 :month>a.month?1 :month<a.month?-1 :day>a.day?1 :day<a.day?-1:0; }
1、三目運算符 (表達(dá)式1)?(表達(dá)式2):(表達(dá)式3),計算方法是這樣的:表達(dá)式1是一個邏輯表達(dá)式,如果其值為true,則整個表達(dá)式的值為表達(dá)式2的值,否則為表達(dá)式3的值
2、例子:int i = (5 > 3) ? (5 + 3) : (5 - 3);結(jié)果為i = 8.因為5 > 3為true,所以i = 5 + 3.
3、根據(jù)三目運算符的從右到左的結(jié)合性,我是這樣劃分的
year > a.year ? 1 : (year < a.year ? -1 : (month > a.month ? 1 : (month < a.month ? -1 : (day > a.day ? 1 : (day < a.day ? -1 : 0)))));
所以應(yīng)該從最右邊的那個表達(dá)式開始計算,結(jié)果應(yīng)該是1、0、-1中的一個值。
以上純屬個人理解。沒搞清楚你這個算法到底是什么意義。。。。
請您花一點時間將文章分享給您的朋友或者留下評論。我們將會由衷感謝您的支持!
相關(guān)文章
Java客戶端通過HTTPS連接到Easysearch實現(xiàn)過程
這篇文章主要為大家介紹了Java客戶端通過HTTPS連接到Easysearch實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11java實現(xiàn)163郵箱發(fā)送郵件到qq郵箱成功案例
這篇文章主要為大家分享了java實現(xiàn)163郵箱發(fā)送郵件到qq郵箱成功案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05簡單快速對@RequestParam聲明的參數(shù)作校驗操作
這篇文章主要介紹了簡單快速對@RequestParam聲明的參數(shù)作校驗操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08