关于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
相关产品推荐
相关产品推荐

