如何使用多个嵌套的三元运算符来返回一个值

本文关键字:运算符 一个 三元 返回 何使用 嵌套 | 更新日期: 2023-09-27 18:23:48

我正在考虑使用多个嵌套的三元运算符。我有三个值要比较。所有3个都是整数。例如:

val1
val2
threshold

由此,我想要一个10的结果。

因此,如果我使用if-else语句来执行此操作,我的逻辑将如下所示:

if (val1 - val2 > threshold)
{
    result = 1;
}
else if (val2 - val1 > threshold)
{
    result = 1;
}

到目前为止,我有这个:

int d = (alpha < 0 ? -alpha : alpha) > threshold ? (alpha < 0 ? -alpha : alpha) : 1;

虽然它编译了,但并没有给我同样的结果。。。

如何使用多个嵌套的三元运算符来返回一个值

result = (val1 - val2 > thresold) ? 1 : (val2-val1 > thresold) ? 1 : 0;

result = (val1 - val2 > thresold) || (val2-val1 > thresold) ? 1 : 0;

result = Math.Abs(val1 - val2) > thresold ? 1 : 0;
result = val1 - val2 > threshold ? 1 : val2 - val1 > threshold ? 1 : 0

为什么不这样:

int d = (val1 - val2 > threshold) || (val2 - val1 > threshold) ? 1 : 0;

但是,请仔细考虑这是否比if语句更可读。不明确地使用?:运算符会使代码的阅读和理解更加困难。

相关文章: