You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于C#三元运算符(?)输出结果的困惑与求解

关于三元运算符的疑问

我理解当布尔表达式求值为true时,第一个结果会存入变量result,否则存入第二个结果。基于此,为什么下面的代码控制台输出是这样的?我刚接触编程,请见谅。

string color = "blue";
string result = (color == "red") ? "blue" : "red";

Console.WriteLine(result); // 输出 red

//_____

string color = "red";
string result = (color == "red") ? "blue" : "red";

Console.WriteLine(result); // 输出 blue

编辑补充:

感谢大家!Jay Buckman帮我搞懂了这个问题!我发现是因为条件和结果用了相同的表述才导致混淆,于是我用下面的代码理清了逻辑:

string color = "blue";
string result = (color == "blue") ? "circle" : "square"; // 变量color和条件里的blue一致,所以结果是circle(结果一)

Console.WriteLine(result);

//_____

string color = "blue";
string result = (color == "red") ? "circle" : "square"; // 变量color和条件里的red不一致,所以结果是square(结果二)

Console.WriteLine(result);

内容的提问来源于stack exchange,提问作者RhysCodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:37:00