带有int:Java的If语句认为我想要转换为布尔值

带有int:Java的If语句认为我想要转换为布尔值,java,int,boolean,Java,Int,Boolean,我正在一个类中编写一个方法,该类从main中检索一个数组和一个集值。目标是定位给定值的位置并将其返回到main(如果该值在数组中不存在,则返回-1)。 我的问题是:当我运行代码时,Java说:int不能转换为boolean。并指向下面代码中的if语句。我尝试将“=”-符号切换为“>=”,然后它运行平稳(但之后它的工作方式与预期不同…)。 有人知道为什么我想把它转换成布尔值吗 public static int containsIntElement(int[] A, int val)

我正在一个类中编写一个方法,该类从main中检索一个数组和一个集值。目标是定位给定值的位置并将其返回到main(如果该值在数组中不存在,则返回-1)。 我的问题是:当我运行代码时,Java说:int不能转换为boolean。并指向下面代码中的if语句。我尝试将“=”-符号切换为“>=”,然后它运行平稳(但之后它的工作方式与预期不同…)。 有人知道为什么我想把它转换成布尔值吗

    public static int containsIntElement(int[] A, int val)
    {
        int pos = -1;
        for (int i = 0; i < 10; i++)
        {
            if(A[i] = val)
            {
                pos = i;
            }
        }
        return pos;
    }
公共静态int containsInElement(int[]A,int val)
{
int pos=-1;
对于(int i=0;i<10;i++)
{
如果(A[i]=val)
{
pos=i;
}
}
返回pos;
}

计算两个
int
的正确方法是
=
,而不是
=

public static int containsIntElement(int[] A, int val)
    {
        int pos = -1;
        for (int i = 0; i < 10; i++)
        {
            if(A[i] == val)   //Note this
            {
                pos = i;
            }
        }
        return pos;
    }

您正在将值
val
分配给变量
A[i]
,这不是一个条件

请注意次要细节

if(A[i] = val) // is incorrect .. in some programming language it is correct. but boy o boy it would make you cry.
if(A[i] == val) // is correct. 
当您打算使用比较运算符时,可以使用
=
(赋值运算符)

您的if所做的是: 将
val
分配给
A[i]
,然后尝试(失败)从
A[i]


(命名约定也说
A
应该是小写)

请记住
=
!=<代码>=记住将答案标记为正确答案
if(A[i] = val) // is incorrect .. in some programming language it is correct. but boy o boy it would make you cry.
if(A[i] == val) // is correct.