从arraylist打印负数位置

时间:2014-09-11 21:39:41

标签: java arrays while-loop

我一直在仔细查看这段代码,似乎无法找到答案。但是,我知道这是一个简单的解决方案,我现在无法找到它......

基本上,我尝试的是找到阵列列表中所有负数的位置。 (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);
}

4 个答案:

答案 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);
    }
}