5. Napisz program, w którym stworzona zostanie tablica o rozmiarze określonym przez argument
przekazany do programu w trakcie jego uruchamiania. Tablica ma zostać uzupełniona kolejnymi
liczbami naturalnymi (bez zera), tyle że w odwrotnej kolejności. Program ma wyświetlić zawartość tej
tablicy na ekranie wykorzystując pętlę for-each.
Przykładowy wynik działania programu dla argumentu na wejściu: 11
Wybrany rozmiar tablicy: 11
Tablica: 11 10 9 8 7 6 5 4 3 2 1
int rozmiar = Integer.parseInt(args[0]);
int tab[] = new int[rozmiar];
System.out.println("Wybrany rozmiar tablicy: " + rozmiar);
System.out.print("Tablica: ");
// Wypelnianie tablicy:
for(int i = 0; i < rozmiar; i++)
{
tab[i] = rozmiar - i;
}
// Wypisywanie tablicy - petla for-each:
for(int i : tab)
{
System.out.print(i+" ");
}
1 - Czy da się całe to zadanie zrobić w jednej pętli for-each (jeśli tak to w jaki sposób? mi nie wyszło)?
2 - Wydaje mi się, że ogólnie pętla for-each ma słabe zastosowania, bo np. tutaj to zadanie można zrobić poprzez dopisanie w głównej pętli for: System.out.print(tab[i]+" "); i efekt będzie taki sam
Nie da się, bo pętla for-each służy tak na dobrą sprawę tylko do odczytywania danych z kolekcji (np. tablicy), a nie do ich modyfikacji. Napisałem o tym również w temacie, poświeconym typowo tej pętli. Czy jest słaba - no nie powiedziałbym, po prostu służy do odczytu i w tym zastosowaniu jest dość wygodna ;)