更具可读性(在我看来)是:
if ((y == a) && (y == b) && (y == c) && (y == d) ...)
但我不相信基础语言中有任何内容。
如果你真的想要你提议的东西,那就是函数的用途,比如:
if (isSetToAll (y, a, b, c, d, ...))
但您可能需要在性能方面小心。
如果这是在一个不变的循环中完成的(换句话说,只有在哪里发生变化) ,那么一件事可能对您有用。a/b/c/d/...
y
检查循环外不变量的相等性:
if ((a == b) && (a == c) && (a == d) ...)
因为,如果不是这样,那么y
永远不可能等于所有这些。然后,在循环内,只需执行以下操作:
if (y == a)
您已经知道所有非y
变量彼此相等的事实意味着您只需要检查y
其中一个。
但是,由于我还没有看到你的完整代码,我不确定它是否对你有用。
我应该提到,虽然很冗长,但您的原始代码实际上并没有什么不可读的地方,特别是如果它的格式很好的话。即使是庞然大物:
if ((y == a) && (y == b) && (y == c) && (y == d) &&
(y == e) && (y == f) && (y == g) && (y == h) &&
(y == i) && (y == j) && (y == k) && (y == l) &&
(y == m) && (y == n) && (y == o) && (y == p) &&
(y == q) && (y == r) && (y == s) && (y == t) &&
(y == u) && (y == v) && (y == w) && (y == x))
{
...
}
是可读的(虽然我不是简洁的变量名的忠实粉丝)。
当然,此时,您可能希望考虑使用带有循环的数组而不是奇异变量。