Prośba o pomoc w poprawieniu kodu - przypisanie wartości do tablicy jednowymiarowej

0

Cześć wszystkim!
Dopiero zacząłem swoją przygodę z programowaniem (w zasadzie od grudnia 2017, ale mniejsza o szczegóły). Aktualnie w wolnych chwilach przerabiam książkę Lisa "Java. Praktyczny kurs." i mam problem z jednym zadaniem z tablic jednowymiarowych:

"Napisz program, w którym zostanie utworzona 100-elementowa tablica liczb typu int. Komórkom o indeksach 0, 10, 20, ..., 90 przypisz wartość 0, komórkom 1, 11, 21, ..., 91 wartość 1, komórkom 2, 12, 22, ..., 92 wartość 2 itd."

Zadanie fajne, dla wielu trywialne ale przerasta moje możliwości. Po wielu próbach zatrzymałem się na tym etapie:

int i = -1;
while(i++ < tablica.length - 1)
{
	tablica[i] = i;
}

// Zawartość tablicy:
i = -1;
while(i++ < tablica.length - 1)
{
	System.out.println("tablica[" + i + "] = " + tablica[i]);
}

Proszę o pomoc bo już nie mam pojęcia jak ograniczyć iterację wartości bo żadna z pętli mi nie działała, a przy inicjacji zmiennej j i zastosowaniu do while(j++ < 9) powoduje podniesienie przypisywanych wartości o 9...i w ogóle nie wiem już co robię źle a siedzę drugi dzień nad tym...

1
  1. Jeżeli potrzebuje licznika w pętli to raczej używaj pętli for.
  2. Zobacz jak działa operator modulo, dzięki temu możesz wygenerować odpowiednią cyfrę do zapisania w tablicy.
0

Dzięki za odpowiedź.
Tak myślałem, żeby zastosować i for i modulo. Jak by jakiś newbie taki jak ja był ciekaw to rozwiązanie wygląda tak:

	int tablica[] = new int[100];
        
        int i = -1;
        
        while(i++ < tablica.length - 1)
        {
            for (; i < 100; i++)
            {
                if (i % 10 == 0)
                    tablica[i] = 0;
                else
                    tablica[i] = i % 10;
            }
        }
        
        // Zawartość tablicy:
        i = -1;
        while(i++ < tablica.length - 1)
        {
            System.out.println("tablica[" + i + "] = " + tablica[i]);
        }
1

@Sebastian Brodziak: Pętla while zbędna, w forze nadaj początkową wartość i=0.

1

Ten fragment:

if (i % 10 == 0)
	tablica[i] = 0;
else
	tablica[i] = i % 10;

Można uprościć do:

tablica[i] = i % 10;

No i oczywiście powinieneś używać pętli for do takich rzeczy:

for (int i = 0; i < tablica.length; i++) {
	...
}
0

Super, dzięki Panowie za pomoc.

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