bool b = true;
Console.WriteLine(b ? "1111" : "2222222" + "3");
Console.ReadKey();上面的代碼執(zhí)行結(jié)果我想是 11113而實(shí)際的結(jié)果確是1111。有人知道這是為什么嗎,按原理應(yīng)該是11113
2 回答

Helenr
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
條件運(yùn)算符(?:)是向右順序結(jié)合,即從右到左執(zhí)行計(jì)算,而在向←運(yùn)算將要執(zhí)行時(shí)編譯器得知+優(yōu)先級(jí)高于條件運(yùn)算符,于是乎先執(zhí)行了"2222222" + "3",而不只是+的優(yōu)先級(jí)的高的問(wèn)題 因此此處實(shí)際是處理 b ? "1111" : "22222223";的運(yùn)算

MM們
TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
Console.WriteLine((b ? "1111" : "2222222") + "3");
運(yùn)算符優(yōu)先級(jí)問(wèn)題,加上括號(hào)改變一下默認(rèn)優(yōu)先級(jí)吧
- 2 回答
- 0 關(guān)注
- 573 瀏覽
添加回答
舉報(bào)
0/150
提交
取消