我一直在仔细查看这段代码,似乎无法找到答案。但是,我知道这是一个简单的解决方案,我现在无法找到它......
基本上,我尝试的是找到阵列列表中所有负数的位置。 (Positionorder:0,1,2,3,4,5,6,7,8)然后打印负数具有的位置。在编译代码时,Java会告诉我错误是什么:
Test.java:11:错误:二元运算符的错误操作数类型'< ='
while (a<=0) { ^
第一种类型:int []
第二种类型:int
1错误&#34; **
但是我怎样才能解决问题,任何可以指导我正确方向的人,以及解释当前代码中不允许while (a < 0)
的原因。 (任务是使用while
)
String posNegative = 0;
int[] a = {1, 4, 5, -2, -4, 6, 10, 3, -2};
while (a < 0) {
posNegative++;
System.out.println(posNegative);
}
答案 0 :(得分:3)
您的代码存在一些问题。首先,你真正想要解决的问题就像这样简单:
int[] a = {1, 4, 5, -2, -4, 6, 10, 3, -2};
for (int i = 0; i < a.length; i++) {
if (a[i] < 0) {
System.out.println(i);
}
}
现在让我们来看看你的代码。如果您查看错误消息,则说明您要比较int[]
,a和int
,0。int[]
与int
完全不同},所以他们无法比较。将int[]
读为“int-array”。
还有这一行的问题:
String posNegative = 0;
我猜你在想的是你需要posNegative
成为一个字符串才能打印出来。但是,这不是必要的。 System.out.println()
几乎可以吸引任何你投入的东西。声明数字时,将其声明为
int posNegative = 0;
答案 1 :(得分:1)
a
是一个数组。数组不能小于零。
您可以通过放置
来遍历数组for (int item : a) {
...
或
for (int i = 0; i < a.length; ++i) {
item = a[i];
....
}
答案 2 :(得分:1)
您将数组与其内容混淆。数组本身不能是负整数,因为它是一个数组,而不是整数。要访问数组的内容,请使用[n],其中n是要访问的元素的索引。
int[] a = {1, 4, 5, -2, -4, 6, 10, 3, -2};
for (int n = 0; n < a.length; n++) {
if (a[n] < 0) {
System.out.println(n);
}
}
答案 3 :(得分:0)
a不是int,它是一个int数组。如果您的目的是遍历数组,则可以使用增强的for循环:
for(int i : a)
{
posNegative++;
if(i < 0)
{
System.out.println(posNegative);
}
}