4 回答

TA貢獻(xiàn)3593條經(jīng)驗 獲得超1個贊

TA貢獻(xiàn)1795條經(jīng)驗 獲得超7個贊
結(jié)果能出現(xiàn)1,說明確實是右結(jié)合,
y!=2說明(++y)沒執(zhí)行,也說明三目運(yùn)算翻譯成字節(jié)碼時只轉(zhuǎn)換成對應(yīng)的邏輯跳轉(zhuǎn)結(jié)構(gòu),只有邏輯為真的分支才會執(zhí)行

TA貢獻(xiàn)1785條經(jīng)驗 獲得超4個贊
題主你這個不是運(yùn)算符優(yōu)先級的問題
你的問題是下面這個情況
fn1() ? fn2() : fn3();
三個函數(shù)那個先執(zhí)行,顯然fn1是最先執(zhí)行的,然后根據(jù)結(jié)果執(zhí)行fn2或者fn3
而書上說的 a?b:c?d:e 等價 a?b:(c?d:e) 是和 (a?b:c)?d:e 這個的區(qū)分
再舉一個更加普通的例子
fn1() + fn2() * fn3();
雖然乘號優(yōu)先級比加號高 但是計算的時候 三個函數(shù)執(zhí)行順序還是 fn1, fn2, fn3,就算你括號括起來 順序也還是不變

TA貢獻(xiàn)1993條經(jīng)驗 獲得超6個贊
結(jié)合順序和執(zhí)行順序是不同的,舉個簡單的例子:
a?b:c?d:e?f:g的結(jié)合順序有:a?b:((c?d:e)?f:g)或a?b:(c?d:(e?f:g))兩種結(jié)合方式,所以第二種才是從右向左的結(jié)合方式,而表達(dá)式的執(zhí)行順序都是從左向右

TA貢獻(xiàn)1898條經(jīng)驗 獲得超8個贊
為什么不加個括號呢,糾結(jié)這些個人感覺并沒有實際的意義。興許你覺得這涉及到原理什么的,可是編程時解決實際問題來著,并不是讓你無謂的給自己增加困擾。
- 4 回答
- 0 關(guān)注
- 2217 瀏覽
添加回答
舉報