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

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

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();
        }
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.
        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?

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1