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

shyt4zoc  于 2021-07-12  发布在  Java
关注(0)|答案(3)|浏览(352)

我正在一个类中编写一个方法,从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;
    }
pieyvz9o

pieyvz9o1#

正确的评估方法 int s是 == ,不是 = :

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;
    }

这个 = 运算符用于指定任务,所以在

if(A[i] = val)

你在赋值 val 到变量 A[i] ,这不是一个条件

qoefvg9y

qoefvg9y2#

请注意小细节

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.
svujldwt

svujldwt3#

你用 = (赋值运算符)您打算使用 == (比较运算符)。
if所做的是:分配 valA[i] 然后尝试(但失败)从 A[i] (命名约定也表示 A 应为小写)

相关问题