需要Java运算符的一些帮助,获取“一元运算符的错误操作数类型int”错误

布莱恩:

我有一些代码正在尝试弄清楚其逻辑。在这段代码中,我有三个布尔值:

  • hasAccount

  • isInactive

  • trackInactive

在这种情况下,我只想在以下情况下采取措施:

一个用户有一个帐户,或者一个用户有一个帐户,他们的帐户处于活动状态,或者他们的帐户未处于活动状态,并且我没有在跟踪不活动的帐户。

最初,我认为应该是这样的:

if(hasAccount ^ (hasAccount && (!isInactive || !trackInactive))){
    // Do something here ...
}

我尝试编写一些代码来测试所有输入,以查看哪种情况可以为我提供正确的输出。这是我所拥有的:

import java.util.Locale;
public class BoolTest {
    public static void main(String[] args){
        boolean[] boolArray = {false,true};

        // WHERE:
        // A -or- i = hasAccount
        // B -or- j = isInactive
        // C -or- k = trackInactive

        System.out.println("+---+---+---++---+");
        System.out.println("| A | B | C || X |");
        System.out.println("+---+---+---++---+");
        for(int i=0; i<boolArray.length; i++){
            for(int j=0; j<boolArray.length; j++){
                for(int k=0; k<boolArray.length; k++){
                    System.out.println(String.format(Locale.US, "| %s | %s | %s || %s |", i, j, k, ((i ^ (i && (!j || !k))))));
                }
            }
        }
        System.out.println("+---+---+---++---+---+---+");
    }
}

但是,当我运行此命令时,出现以下错误:

error: bad operand type int for unary operator '!'
    System.out.println(String.format(Locale.US, "| %s | %s | %s || %s |", i, j, k, ((i ^ (i && (!j || !k))))));
                                                                                                ^
error: bad operand type int for unary operator '!'
    System.out.println(String.format(Locale.US, "| %s | %s | %s || %s |", i, j, k, ((i ^ (i && (!j || !k))))));
                                                                                                      ^

我该如何修正我的测试代码,以便正确测试所有不同的条件?

妮基·查特吉(Nikhil Chatterjee):

在Java中,不能!在整数类型上使用运算符。在c ++中,由于布尔类型和整数类型之间的隐式转换,因此可以,但是在Java中,没有这样的隐式转换。boolean类就是真或假,并和整数类型仅仅是一个整数,这就是为什么!运营商在一个int将无法正常工作。

在您的情况下,您可以仅i, j, k使用boolArray[i], boolArray[j], boolArray[k]替换值,应该会按预期工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

二进制运算符'%'的错误操作数类型

二进制运算符'^'的错误操作数类型

二进制运算符“&” java的错误操作数类型

与泛型一起使用时,如何解决“二进制运算符'+'的错误操作数”?

如何解决错误“二进制运算符'> ='的错误操作数类型,第一种类型:int []第二种类型int”

优先队列中二进制运算符“-”的错误操作数类型

使用双精度的二进制运算符'>'的错误操作数类型

使用增量运算符会产生构建错误“ swift一元运算符'++'无法应用于类型为'Int'的操作数”

一元运算符'-'不能应用于类型'@lvalue Int?'的操作数 (又名“ @lvalue Optional <Int>”)

“错误:二进制运算符'&&'java的错误操作数类型

二进制运算符'!='的错误操作数类型第一类型:字符串第二类型:int

TypeError:一元运算符的错误操作数类型〜:在groupby时使用'float'并应用函数

如何解决“错误:二进制运算符的错误操作数类型”问题?

二进制运算符的错误操作数类型&

为什么一元运算符返回的类型与其操作数不同?

需要左值作为增量操作数-+一元运算符

TypeError:一元运算符的错误操作数类型+:我认为代码为corect时为'str'

二进制运算符'=='的错误操作数类型

二进制运算符编译错误的错误操作数类型

二进制运算符'/'的错误操作数类型第一类型字符串第二类型int

一元运算符惊叹号的错误操作数类型的动作侦听器

JAVA中二进制运算符'>'的错误操作数类型

二进制运算符的错误操作数类型+

Bash 错误:需要一元运算符

python中一元的错误操作数类型

错误:二元运算符“<=”的错误操作数类型

有没有办法处理这段代码中的“java:二元运算符的错误操作数类型”!=“”?

如何解决这个二元运算符的错误操作数类型

错误:二元运算符“%”的错误操作数类型