Wypełnianie tablicy - pętla nie wykonuje się ani raz

Wypełnianie tablicy - pętla nie wykonuje się ani raz
JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 122
0

Daję tablicy j indeksów przez Scanner. Chciałbym ją wypełnić, ale pętla nie wykonuje się ani razu, zgłasza jakiś błąd. Jeżeli użyję tablica.length to pętla wykonuje się jeden raz. Co jest nie tak

Kopiuj
int j = 0;
        //int testy;
        //int iloscliczb = 0;
        int i = 0;
        int[] tablica = new int[j];
        
        Scanner skaner = new Scanner(System.in);
        //testy = skaner.nextInt();
        j = skaner.nextInt();
        
        for(i=0;i<=tablica[j];i++){
        tablica[j] = skaner.nextInt();
        }
Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

A ty myślisz że ta tablica to się jakoś magicznie powiększy czy że niby co się z nią stanie? o_O Stworzyłeś tablicę na ZERO elementów, następnie wczytujesz jakąś liczbę i próbujesz do indeksu tablicy takim jak wczytana liczba coś wpisać.
Czyli:

  • masz tablicę na 0 elementów
  • user podaje liczbę 1000
  • ty próbujesz coś wpisać do tablica[1000]
    Geniusz! A ten "jakiś błąd" to zapewne ArrayOutOfBoundsException który jasno mówi że elementów jest 0 a indeks jest ileśtam.
Kopiuj
        int j = 0;
        int i = 0;
        Scanner skaner = new Scanner(System.in);
        j = skaner.nextInt();
        int[] tablica = new int[j];
        for(i=0;i<j;i++){
            tablica[i] = skaner.nextInt();
        }

Rozumiem że chciałeś jednak napisać coś takiego?

JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 122
0

Już wszystko rozumiem. Brak doświadczenia, nie do końca zrozumiałem tablice, sądziłem że wczytuję do tablicy jot elementowej, a nie jotego elementu. Dzięki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.