Adăugarea de valori la o matrice în java (Programare, Java, Array-Uri)

Toko Laskis a intrebat.
int[] tall = new int[28123];

for (int j = 1;j <= 28123; j++){
    int x = 0;
    tall[x] = j;
    x++;
}

Ce este în neregulă cu acest cod? Acest cod nu ar trebui să facă următoarele:

  1. Creați un tablou numit tall cu o dimensiune de 28123.
  2. Faceți ca indicele 0 = 1, indicele 1 = 2 și așa mai departe.

7 răspunsuri
kamituel

Nu, reinitializezi x în fiecare buclă. Schimbați în:

int[] tall = new int[28123];
int x = 0;

for (int j = 1;j<=28123;j++){
    tall[x] = j;
    x++;
}

Sau, chiar mai bine (din moment ce x este întotdeauna egal cu j-1):

int[] tall = new int[28123];

for (int j = 1;j<=28123;j++){
    tall[j-1] = j;
}

Peter Lawrey

Vă sugerez să parcurgeți codul în debuggerul dvs., deoarece acesta este destinat pentru depanarea programelor.

Ceea ce mă aștept să vedeți este că de fiecare dată când codul face buclă int x = 0; este setat.

MikO

Aveți nu una, ci mai multe greșeli. Ar trebui să fie:

int[] tall = new int[28123];

for (int j=0;j<28123;j++){
    tall[j] = j+1;
}

Codul tău pune un 0 în toate pozițiile din array.

În plus, va arunca o excepție, deoarece ultimul indice al array-ului este 28123-1 (array-urile în Java încep de la 0!).

BobTheBuilder

Întotdeauna setați x la 0 înainte de a schimba valoarea array-ului.

Puteți folosi:

int[] tall = new int[28123];

for (int j = 0;j<28123;j++){
    // Or whatever value you want to set.
    tall[j] = j + 1;
}

Sau pur și simplu eliminați inițializarea lui x (int x=0) înainte de bucla for.

apomene

puneți x=0 în afara buclei for că asta e problema

Salah Owaidah
  • Prima linie : array creat.
  • A treia linie bucla a început de la j = 1 la j = 28123
  • A patra linie se dă valoarea variabilei x (0) de fiecare dată când este accesată bucla.
  • A cincea linie se pune valoarea lui j în indexul 0.
  • A șasea linie: incrementează valoarea x cu 1 (dar va fi resetată la 0 la linia 4).

Vignesh Chandran
public class Array {
    static int a[] = new int[101];
    int counter = 0;
    public int add(int num) {
        if (num <= 100) {
            Array.a[this.counter] = num;
            System.out.println(a[this.counter]);
            this.counter++;

            return add(num + 1);
        }
        return 0;
    }

    public static void main(String[] args) {
        Array c = new Array();
        c.add(1);
    }
}