语句中的三元运算符
本文关键字:三元 运算符 语句 | 更新日期: 2023-09-27 18:37:20
我正在尝试在for语句的最后一部分使用三元运算符来增加或减少我的索引。但这似乎不是C Sharp的正确陈述?我正在尝试从Javascript中移动一些代码,这就是我尝试这样做的原因。
for (int _j = 0, _ref = (int) Math.Floor((double)array.Count / 2);
0 <= _ref ? _j < _ref : _j > _ref;
0 <= _ref ? _j++ : _j--)
{
_results1.Add(_j);
}
关于如何在 C# 中的 for 语句中实现三元运算符的任何想法?
在 C# 中,a for 语句需要一个 init-statement、一个 bool experssion、一个增量语句
您可以将其拆分为两种情况:
_ref = (int) Math.Floor((double)array.Count / 2); // assuming this can go negative...
if(0 <= _ref)
{
for (int _j = 0; _j < _ref; _j++)
{
_results1.Add(_j);
}
}
else
{
for (int _j = 0; _j > _ref; _j--)
{
_results1.Add(_j);
}
}
如果您喜欢它更短,您可以删除所有大括号...
条件表达式 0 <= _ref ? _j++ : _j--
不是有效的语句。 你可以用任何方式从中做出陈述,但它是不完整的。 正如您收到的错误消息所示,您需要该语句是await
、方法调用、递增/递减或新对象表达式,才能成为有效的表达式语句。 条件运算符不在该列表中。
当然,与其向该表达式添加完全多余的方法调用,真正的解决方法是首先不使用这样的条件运算符,而不是添加更多不可读的代码来编译它。
三元运算符需要两个表达式,因此这不起作用。您可以做的是:
_j += (0 <= _ref ? 1 : -1);
不过,这看起来比糟糕更糟糕。