【问题标题】:Method for displaying the largest of three numbers with the ? operator用 ? 显示三个数字中最大的一个的方法操作员
【发布时间】:2021-12-24 00:41:09
【问题描述】:

我一直在尝试定义一种方法,该方法应将三个 int 数中的最大值存储在一个变量中,然后返回该值。

我是这样尝试的:

public static int Max(int a, int b, int c)
{
    int iResult = 0;

    a > b && a > c ? iResult = a : b > a && b > c ? iResult = b : iResult = c;
    return(iResult);
}

如果有人能告诉我为什么“?”会很酷运算符不起作用:)

【问题讨论】:

  • 只是return (a > b && a > c) ? a : ((b > a && b > c) ? b : c);。三元必须赋值给某个变量或用作可返回值。
  • => Math.Max(a, Math.Max(b, c)); ?
  • 当您告诉我们“它不起作用”时,您需要告诉我们它为什么不起作用以及您收到什么错误消息。下次请多注意您的问题。

标签: c# conditional-operator


【解决方案1】:

? : - 三元运算符 - 获取 3 个参数并返回一个结果

  iResult = condition ? onTrue : onFalse;

在我们的例子中,我们必须结合两个三元运算符:

  iResult = condition1 ? onTrue1 
          : condition2 ? onTrue2
          : onFalse1and2;

可以(请不要忘记格式化,让我们保持代码可读

  iResult = a > b && a > c ? a
          : b > a && b > c ? b
          : c;

或者我们可以去掉iResult,把它压缩成

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

【讨论】:

    【解决方案2】:
    iResult = a > b && a > c ? a : b > a && b > c ? b : c;
    

    这东西应该可以的。但也为了更好地理解你应该使用大括号。

    【讨论】:

    猜你喜欢
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2022-12-02
    • 2018-05-04
    相关资源
    最近更新 更多