设置数组索引的值

时间:2017-12-08 16:45:46

标签: java arrays

大家好,

我试图弄清楚如何将Diff [0]设置为等式的总和,我发现时间:

int a = 0;

System.out.println(Data[0] - Data[1]);   //The calculation is possible and correct

Diff[a] = Data[0] - Data[1];   //But this line outputs a value of 0

Diff[0] = Data[0] - Data[1];   //I have also tried this but still a value of 0

这是我的代码:没有错误

public static void main(String[] args) {

    Scanner numbers = new Scanner(System.in);

    int Numbers;
    int A;
    int a = 0, b = 1, c = 2, d = 3, e = 4, f = 5, g = 6, h = 7, i = 8, j = 9, k = 10, l = 11, m = 12, n = 13, o = 14, p = 15, q = 16, r = 17;
    int num;
    int lengthOfArray;

    System.out.println("Welcome to Stone Pile");
    System.out.println("\nEnter the number of stones:");
    Numbers = numbers.nextInt();

    int Data[] = new int[Numbers];
    for (A = 0; A < Data.length; A++) {
        for (num = 1; num < Numbers; num++) {
            int numGen = ThreadLocalRandom.current().nextInt(1, 21);
            Data[A] = numGen;
        }
    }

    lengthOfArray = Data.length;

    System.out.println("\n");

    System.out.println(Data.length + " This is the length of the Data Array");

    System.out.println("\n");

    System.out.println(Data[0]);
    System.out.println(Data[1]);
    System.out.println(Data[2]);
    System.out.println(Data[3]);
    System.out.println(Data[4]);
    System.out.println(Data[5]);
    System.out.println(Data[6]);
    System.out.println(Data[7]);
    System.out.println(Data[8]);
    System.out.println(Data[9]);

    System.out.println("\n");

    int Diff[] = new int[20];

    System.out.println(Diff.length + " This is length of the Diff Array");

    System.out.println("\n");

    System.out.println(Diff[0]);
    System.out.println(Diff[1]);
    System.out.println(Diff[2]);
    System.out.println(Diff[3]);
    System.out.println(Diff[4]);
    System.out.println(Diff[5]);
    System.out.println(Diff[6]);
    System.out.println(Diff[7]);
    System.out.println(Diff[8]);
    System.out.println(Diff[9]);

    switch (lengthOfArray) {
        case 2:
            Diff[a] = Data[0] - Data[1];
            break;

        case 3:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            break;

        case 4:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            break;

        case 5:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            break;

        case 6:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            break;

        case 7:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            break;

        case 8:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            break;

        case 9:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            break;

        case 10:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            Diff[i] = Data[8] - Data[9];
            break;

        case 11:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            Diff[i] = Data[8] - Data[9];
            Diff[j] = Data[9] - Data[10];
            break;

        case 12:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            Diff[i] = Data[8] - Data[9];
            Diff[j] = Data[9] - Data[10];
            Diff[k] = Data[10] - Data[11];
            break;

        case 13:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            Diff[i] = Data[8] - Data[9];
            Diff[j] = Data[9] - Data[10];
            Diff[k] = Data[10] - Data[11];
            Diff[l] = Data[11] - Data[12];
            break;

        case 14:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            Diff[i] = Data[8] - Data[9];
            Diff[j] = Data[9] - Data[10];
            Diff[k] = Data[10] - Data[11];
            Diff[l] = Data[11] - Data[12];
            Diff[m] = Data[12] - Data[13];
            break;

        case 15:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            Diff[i] = Data[8] - Data[9];
            Diff[j] = Data[9] - Data[10];
            Diff[k] = Data[10] - Data[11];
            Diff[l] = Data[11] - Data[12];
            Diff[m] = Data[12] - Data[13];
            Diff[n] = Data[13] - Data[14];
            break;

        case 16:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            Diff[i] = Data[8] - Data[9];
            Diff[j] = Data[9] - Data[10];
            Diff[k] = Data[10] - Data[11];
            Diff[l] = Data[11] - Data[12];
            Diff[m] = Data[12] - Data[13];
            Diff[n] = Data[13] - Data[14];
            Diff[o] = Data[14] - Data[15];
            break;

        case 17:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            Diff[i] = Data[8] - Data[9];
            Diff[j] = Data[9] - Data[10];
            Diff[k] = Data[10] - Data[11];
            Diff[l] = Data[11] - Data[12];
            Diff[m] = Data[12] - Data[13];
            Diff[n] = Data[13] - Data[14];
            Diff[o] = Data[14] - Data[15];
            Diff[p] = Data[15] - Data[16];
            break;

        case 18:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            Diff[i] = Data[8] - Data[9];
            Diff[j] = Data[9] - Data[10];
            Diff[k] = Data[10] - Data[11];
            Diff[l] = Data[11] - Data[12];
            Diff[m] = Data[12] - Data[13];
            Diff[n] = Data[13] - Data[14];
            Diff[o] = Data[14] - Data[15];
            Diff[p] = Data[15] - Data[16];
            Diff[q] = Data[16] - Data[17];
            break;

        case 19:
            Diff[a] = Data[0] - Data[1];
            Diff[b] = Data[1] - Data[2];
            Diff[c] = Data[2] - Data[3];
            Diff[d] = Data[3] - Data[4];
            Diff[e] = Data[4] - Data[5];
            Diff[f] = Data[5] - Data[6];
            Diff[g] = Data[6] - Data[7];
            Diff[h] = Data[7] - Data[8];
            Diff[i] = Data[8] - Data[9];
            Diff[j] = Data[9] - Data[10];
            Diff[k] = Data[10] - Data[11];
            Diff[l] = Data[11] - Data[12];
            Diff[m] = Data[12] - Data[13];
            Diff[n] = Data[13] - Data[14];
            Diff[o] = Data[14] - Data[15];
            Diff[p] = Data[15] - Data[16];
            Diff[q] = Data[16] - Data[17];
            Diff[r] = Data[16] - Data[18];
            break;
    }

输出:

20这是数据阵列的长度

9 17 五 20 20 17 17 3 7 6

20这是Diff Array的长度

0 0 0 0 0 0 0 0 0 0

Diff数组中的数字不应全是0&#39;

我想知道是否可以根据方程设置数组索引的值。

2 个答案:

答案 0 :(得分:1)

通过循环实现这一点会更容易:

for(int i=0; i<Data.length-1; i++){
    Diff[i] = Data[i]-Data[i+1];
    System.out.println(Diff[i]);
}

这四行可以替换你的整个switch语句和所有“println(Diff ...”行)。(注意你得到错误的Diff输出的原因是因为你在设置它们的值之前打印了Diffs )

答案 1 :(得分:0)

忽略丑陋的代码,您应该在<{strong> {/ 1}}存根之后移动打印Diff数组的存根。在为数据赋值之前,您打印了switch数组。