Artur 54 wyśw. 06-07-2025 22:07

Praca domowa 3 zad 5

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


Programowanie Dodaj post do ulubionych Poproś o pomoc
s.gugula 06-07-2025 23:33

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 ;)


Artur 07-07-2025 11:41

Dziękuję :D