有可能压缩这个吗?

时间:2015-12-09 14:18:37

标签: if-statement

我想写一些类似的东西:

if (x == a || x == b || x == c || x == d)
{
    //...do something
}

以更短的方式而不是重复代码?

编辑:这是在java中,抱歉。 此外,a,b,c和d是常数。

5 个答案:

答案 0 :(得分:0)

if (in_array(x, array('a', 'b', 'c'))) {

}

检查数组中x的值是否存在。

您没有提供使用的编程代码,我使用的是PHP函数。

答案 1 :(得分:0)

它看起来很好,易于阅读而且不复杂。清晰是王道。变量名称不是那么好,但可能是因为代码段不在上下文中。在大多数语言中,逻辑将在“短路”中进行评估。你获得的第一个真实结果将终止对表达式的评估并继续你的“做某事”。码。

答案 2 :(得分:0)

如果这是C#且x的类型为int,您可以使用Linq重写条件,如下所示。

if( new int[]{ a, b, c, }.Contains(x) )
{
    // do stuff
}

答案 3 :(得分:0)

C#

List<int> list = new List<int> {a, b, c, d};
if (list.contains(x))
{
}

if (new List<int> {a, b, c, d}.Contains(x))
{
}

答案 4 :(得分:0)

无论语言如何,我认为最好尝试捕获操作的意图,而不是显式检查布尔结果。

你可能无法获得更短的任何东西,但至少意图是明确的

if (SomethingThatReturns1() || 
    SomethingThatReturns2() || 
    SomethingThatReturns3() || 
    SomethingThatReturns4())
                {
                    //...do something
                }