带有int:Java的If语句认为我想要转换为布尔值
我正在一个类中编写一个方法,该类从main中检索一个数组和一个集值。目标是定位给定值的位置并将其返回到main(如果该值在数组中不存在,则返回-1)。 我的问题是:当我运行代码时,Java说:int不能转换为boolean。并指向下面代码中的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)
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.