用 ? 显示三个数字中最大的一个的方法操作员
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 手动输入的数字中找出最大和最小的数字