使用动态变量Java在循环中打印数组

时间:2016-10-20 20:57:05

标签: java arrays loops math

我正在尝试定义一个每次增加1的数组,然后打印分配数组的等式的结果;

到目前为止,我的代码是

public class PrimeNumberCounter {

public static void main(String[] args) {
// Define integers
int a = 1;
final int b = 2;
final int c = 3;
// Define Array
int[] nth;
nth = new int[100];
//Set loop
    for (a = 1; a < 100; a = a + 1) {
    int d = a * b + c;
    System.out.println(d);
    }
  }
}

数学函数和循环工作,但我无法弄清楚如何发布第n个术语。 到目前为止,我已经读过数组是最合适的解决方案,但是经过多次搞乱后删除了打印数组部分,并决定寻求帮助。

全部谢谢

编辑:添加原始代码(这有点傻,因此我没有第一次发布它

public class PrimeNumberCounter {

public static void main(String[] args) {
// Define integers
int a = 1;
final int b = 2;
final int c = 3;
// Define Array.
int[] nth;
nth = new int[100];
    //Set loop
    for (a = 1; a < 100; a = a + 1) {
    nth[] = a * b + c;
    System.out.println(nth);

    }
  }
}

2 个答案:

答案 0 :(得分:1)

使用像列表一样的集合而不是使用数组。

您可以使用迭代器迭代该列表并更新迭代器。

答案 1 :(得分:0)

如果我理解正确,你不是要增加数组的大小,你要做的是增加一个遍历数组的计数器,并将d = a * b + c;方程的结果赋给第i个数组的元素。然后,在填充了数组中的所有元素之后,您希望遍历数组并打印所有值。如果是这种情况,您可以按如下方式修改代码:

public class PrimeNumberCounter {

    public static void main(String[] args) {
        // Define integers
        int a = 1;
        final int b = 2;
        final int c = 3;
        //int d = 0; // not used
        // Define Array assuming that its size is fixed to 100
        int[] nth = new int[100];
        // Set the assignment loop
        for (a = 1; a <= nth.length; ++a) {
            // array indexing starts at 0
            nth[a - 1] = a * b + c;
        }
        // print loop
        for (int i = 0; i < nth.length; ++i) {
            System.out.printf("%d: %d\n", i + 1, nth[i]);
        }
    }
}

如果您不能事先了解数组的大小,则可以使用ArrayList,而不是像评论和上一个答案中提到的那样动态增长。

import java.util.List;
import java.util.ArrayList;

public class PrimeNumberCounter {

    public static void main(String[] args) {
        // Define integers
        int a = 1;
        final int b = 2;
        final int c = 3;
        // Some size N let's assume it's a 100 again
        List<Integer> nth = new ArrayList<Integer>();
        // Set the assignment loop
        for (a = 1; a <= 100; ++a) {
            // array indexing starts at 0
            nth.add(a - 1, a * b + c);
        }
        // print loop
        for (int i = 0; i < nth.size(); ++i) {
            System.out.printf("%d: %d\n", i + 1, nth.get[i]);
        }
    }
}