Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果条件具有或值_Java_Objective C - Fatal编程技术网

Java 如果条件具有或值

Java 如果条件具有或值,java,objective-c,Java,Objective C,我想知道是否有可能重新写一个这样的假设 int var = 0; if ( var == 1 || var == 2 ) { //... } int var = 0; if ( var == (1 || 2) ) { //... } 像这样的事情 int var = 0; if ( var == 1 || var == 2 ) { //... } int var = 0; if ( var == (1 || 2) ) { //... } 或类似的。谢谢在java中

我想知道是否有可能重新写一个这样的假设

int var = 0;
if ( var == 1 || var == 2 )
{
   //...
}
int var = 0;
if ( var == (1 || 2) )
{
   //...
}
像这样的事情

int var = 0;
if ( var == 1 || var == 2 )
{
   //...
}
int var = 0;
if ( var == (1 || 2) )
{
   //...
}

或类似的。谢谢

在java中,if没有这样的语法

如果在If条件下有一大组值,则可以使用开关:

编辑:

使用Java 8,您还可以编写:

int var = ...;
if (IntStream.of(1, 2, 3, 4).anyMatch(i -> var == i)) {
   //...
}

在java中,if没有这样的语法

如果在If条件下有一大组值,则可以使用开关:

编辑:

使用Java 8,您还可以编写:

int var = ...;
if (IntStream.of(1, 2, 3, 4).anyMatch(i -> var == i)) {
   //...
}

||代表或运算符,因此其两侧都需要条件,因此这是不正确的
当您在| |运算符的两侧放置整数时

| |表示or运算符,因此它在两侧都需要一个条件,因此这是不正确的 当您在| |运算符的两侧放置整数时

根据

条件or运算符的每个操作数必须是布尔或布尔类型,否则会发生编译时错误

因此,没有更好更快的方法来编码您的条件。 根据

条件or运算符的每个操作数必须是布尔或布尔类型,否则会发生编译时错误

因此,没有更好更快的方法来编码您的条件。
相同的规则适用于条件and运算符

否,这在Java中是不可能的。您所问的问题类似于运算符中的sql

ifvar==1 | | 2可以很容易地在[1,2]中转换为ifvar,但Java也不支持这一点

您所能接近的是使用集合:

ifArrays.asList1,2.containsvar{

还是一根绳子

如果1\u或2.containsString.valueOfvar

另一种方法是构建一个函数,如

public static final boolean in(final int var, final int... vals) {
    for (int val : vals) {
        if (var == val) {
            return true;
        }
    }
    return false;
}
然后,您将调用:ifinvar,1,2{

或者,您可以为Integer构建一个包装器,并在其中添加方法,因此如果[val1,val2…valN]中的值为x,则方法调用听起来可能更自然


不,这在Java中是不可能的。您要问的是类似于运算符中的sql的东西

ifvar==1 | | 2可以很容易地在[1,2]中转换为ifvar,但Java也不支持这一点

您所能接近的是使用集合:

ifArrays.asList1,2.containsvar{

还是一根绳子

如果1\u或2.containsString.valueOfvar

另一种方法是构建一个函数,如

public static final boolean in(final int var, final int... vals) {
    for (int val : vals) {
        if (var == val) {
            return true;
        }
    }
    return false;
}
然后,您将调用:ifinvar,1,2{

或者,您可以为Integer构建一个包装器,并在其中添加方法,因此如果[val1,val2…valN]中的值为x,则方法调用听起来可能更自然


在C条件(如1 | | 2 always True)中只能对布尔值使用条件运算符在C条件(如1 | | 2 always trueArrays)中只能对布尔值使用条件运算符。asListnew int[]{1,2}将返回一个列表。您必须编写数组。asList1,2才能获得列表。Arrays.asListnew int[]{1,2}将返回一个列表。您必须写入array.asList1,2才能获取列表。