java - 如何将数组中的负数更改为其索引槽

标签 java arrays while-loop counter

我试图将 WholeNumbers 数组中的负数更改为它们的槽/索引号,然后打印出该数组。我还必须使用 while 循环。这是我到目前为止所得到的,但现在我陷入困境。我复制数组的方向正确吗?我该如何继续,“change[counter]”等于“counter”是否正确?还是我的想法错了?当我运行时出现错误

public class NegativeNumber {
public static void main(String[] args) {

    int[] wholeNumbers = {1, 4, 5, -2, -4, 6, 10, 3, -2};
    int counter = 0;
    int negativeCounter = 0;
    int sum = 0;

 while(counter < wholeNumbers.length) {
   if(wholeNumbers[counter] < 0)
   {
     sum += wholeNumbers[counter];
     negativeCounter++;
   }
  counter++;

  }
System.out.println("Negative numbers: "+negativeCounter);


int[] change = Arrays.copyOf(wholeNumbers, wholeNumbers.length);

while(counter < change.length) { //get error
  if(change[counter] < 0){
     change[counter]=counter;
System.out.println(change[counter]);
  }
  }
}
}
}

最佳答案

public static void main(String[] args) {

    int[] wholeNumbers = {1, 4, 5, -2, -4, 6, 10, 3, -2};

    int negativeCount;

    for(int i = 0; i < wholeNumbers.length; i++) {
        if(wholeNumbers[i] < 0) {
            negativeCount++;

            wholeNumbers[i] = i;
        }
    }
}

带有while

public static void main(String[] args) {

    int[] wholeNumbers = {1, 4, 5, -2, -4, 6, 10, 3, -2};

    int negativeCount;

    int idx = 0;

    while(idx < wholeNumbers.length) {
        if(wholeNumbers[idx] < 0) {
            negativeCount++;

            wholeNumbers[idx] = idx;
        }

        idx++;
    }
}

关于java - 如何将数组中的负数更改为其索引槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39550417/

相关文章:

java - 将类名添加到uibinder xml文件中的元素

javascript - 理解 JavaScript 中的原型(prototype)或 Map.prototype

c++ - 将 16 位整数转换为 char 数组? (C++)

c++ - 尝试将 while 循环添加到此代码块

java - 在 Post 请求之前将字节数组转换为 C# 字节数组

java - 计划任务执行两次

python - 删除 numpy 数组中第一次出现的元素

C 插入排序陷入 while 循环

python - While 循环仅正确迭代一次

java - Hibernate 更新 - 在 where 子句中按父参数过滤时出现异常