如何使用多个嵌套的三元运算符来返回一个值
本文关键字:运算符 一个 三元 返回 何使用 嵌套 | 更新日期: 2023-09-27 18:23:48
我正在考虑使用多个嵌套的三元运算符。我有三个值要比较。所有3个都是整数。例如:
val1
val2
threshold
由此,我想要一个1
或0
的结果。
因此,如果我使用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
语句更可读。不明确地使用?:
运算符会使代码的阅读和理解更加困难。