为了账号安全,请及时绑定邮箱和手机立即绑定

c#遇到的一个小问题语法方面的

c#遇到的一个小问题语法方面的

人到中年有点甜 2018-11-27 14:05:03
bool b = true;             Console.WriteLine(b ? "1111" : "2222222" + "3");             Console.ReadKey();上面的代码执行结果我想是 11113而实际的结果确是1111。有人知道这是为什么吗,按原理应该是11113
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

条件运算符(?:)是向右顺序结合,即从右到左执行计算,而在向←运算将要执行时编译器得知+优先级高于条件运算符,于是乎先执行了"2222222" + "3",而不只是+的优先级的高的问题 因此此处实际是处理 b ? "1111" : "22222223";的运算 

查看完整回答
反对 回复 2018-12-01
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

Console.WriteLine((b ? "1111" : "2222222") + "3");
运算符优先级问题,加上括号改变一下默认优先级吧


查看完整回答
反对 回复 2018-12-01
  • 2 回答
  • 0 关注
  • 637 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信