用 ? 显示三个数字中最大的一个的方法操作员

Posted

技术标签:

【中文标题】用 ? 显示三个数字中最大的一个的方法操作员【英文标题】: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)); ? 当您告诉我们“它不起作用”时,您需要告诉我们它为什么不起作用以及您收到什么错误消息。下次请多注意您的问题。 【参考方案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;

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

【讨论】:

dotnetfiddle.net/cwCMq0 - 检查它的工作原理

以上是关于用 ? 显示三个数字中最大的一个的方法操作员的主要内容,如果未能解决你的问题,请参考以下文章

用Java找出一个整数数组中最大的值,并返回最大值的数组下标,尤其是有两个或是三个最大值时

用Android Studio 手动输入的数字中找出最大和最小的数字

#输入三个数字,以逗号隔开,输出其中最大的数 这题用pycharm怎么写啊

Python - 在数字列表中查找最大数字

python比较三个数绝对值大小并输出最大值?

excel中用max函数求取不了最大值该如何解决