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

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

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