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

使用?:运算符实现三个整数取最大值的方法无法运行,请问原因是什么?

问题原因

  • 核心语法错误:C# 中?:属于条件表达式,它的本质是计算并返回一个值,不属于可以单独作为一行执行的语句类型,你当前将整段三元表达式作为独立语句编写,没有接收它的返回值,不符合C#语法规范,编译器会直接报错。
  • 逻辑漏洞:当前的判断条件仅覆盖了三个数严格大于另外两个的场景,出现两个数相等且均大于第三个数的情况时(比如a = b = 5, c = 3),判断逻辑会走到最后一个分支返回c,结果不符合预期。

修正写法

写法1:直接用三元表达式赋值

利用三元表达式的返回值直接给变量赋值,符合语法规则:

public static int Max(int a, int b, int c)
{
    int iResult = a >= b && a >= c ? a : b >= c ? b : c;
    return iResult;
}

写法2:用if分支实现(可读性更高)

多参数判断更推荐用if分支,后续维护更方便:

public static int Max(int a, int b, int c)
{
    int iResult = a;
    if (b > iResult) iResult = b;
    if (c > iResult) iResult = c;
    return iResult;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:09:03