If statement 有可能把这个浓缩一下吗?

If statement 有可能把这个浓缩一下吗?,if-statement,If Statement,我想写一些像: if (x == a || x == b || x == c || x == d) { //...do something } 以一种更短且不重复代码的方式 编辑:对不起,这是用java编写的。 此外,a、b、c和d都是常数 if (in_array(x, array('a', 'b', 'c'))) { } 检查数组中是否存在x值 您没有提供使用的编程代码,我使用的是PHP函数 检查数组中是否存在x值 您没有提供所使用的编程代码,我使用了一个PHP函数。它看起来很

我想写一些像:

if (x == a || x == b || x == c || x == d)
{
    //...do something
}
以一种更短且不重复代码的方式

编辑:对不起,这是用java编写的。 此外,a、b、c和d都是常数

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

}
检查数组中是否存在x值

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

检查数组中是否存在x值


您没有提供所使用的编程代码,我使用了一个PHP函数。

它看起来很好,易于阅读,也不复杂。清晰是王道。变量名不是很好,但这可能是因为代码段脱离了上下文。在大多数语言中,逻辑将以“短路”方式求值,这样您得到的第一个真实结果将终止对表达式的求值,并继续执行“do something”代码

它看起来很好,容易阅读,也不复杂。清晰是王道。变量名不是很好,但这可能是因为代码段脱离了上下文。在大多数语言中,逻辑将以“短路”方式求值,这样您得到的第一个真实结果将终止对表达式的求值,并继续执行“do something”代码

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

if( new int[]{ a, b, c, }.Contains(x) )
{
    // do stuff
}
如果这是C#,并且
x
的类型是
int
,则可以使用Linq重写条件,如下所示

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

List List=新列表{a,b,c,d};
如果(列表包含(x))
{
}

if(新列表{a,b,c,d}包含(x))
{
}
C#

List List=新列表{a,b,c,d};
如果(列表包含(x))
{
}

if(新列表{a,b,c,d}包含(x))
{
}

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

你可能不会从缩短时间方面获得任何好处,但至少目的是明确的

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

无论使用哪种语言,我认为最好尝试并捕获操作的意图,而不是显式地检查布尔结果

你可能不会从缩短时间方面获得任何好处,但至少目的是明确的

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

语言应该是…?@潜伏者-那么c呢?是
a
通过
d
变量吗?或者它们是连续的枚举常量?这个例子不是很清楚。顺便说一下,我并不认为给定的例子是“重复代码”的一个坏例子。请指定语言类型,语言是……@ Lurk-什么是C?<代码> A <代码> >代码> d>代码>变量?或者它们是连续的枚举常量?这个例子不是很清楚。顺便说一下,我并不认为给定的例子是“重复代码”的一个坏例子。请指定语言类型。