Na początek mogłeś przenieś do funkcji to co już napisałeś
int suma = 0;
for (int i=0; i<liczby.length; i++) {
suma += liczby[i];
}
System.out.println(suma);
tylko zamiast
System.out.println(suma);
napisać
return suma;
całość [ on-line ]
public class Main
{
public static void main(String[] args) {
int[] liczby = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
System.out.println(sumaliczb(liczby));
}
private static int sumaliczb (int[] liczby) {
int suma = 0;
for (int i=0; i<liczby.length; i++)
suma += liczby[i];
return suma;
}
}
W wersji z return Moim zdaniem błędny zapis jest w liniach
public static void main(String[] args) {
int[] liczby = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
System.out.println(sumaliczb(liczby));
}
private static int sumaliczb ( int[] zbiorliczb) {
int suma = zbiorliczb[0];
for (int liczby : zbiorliczb) {
if (liczby < zbiorliczb) {
suma = liczby;
}
}
return suma;
}
linia 8, skoro i tak "pobierasz" w pętli poniżej wszystkie wartości z tablicy po kolei to ten zapis
int suma = zbiorliczb[0];
spowoduje odczytanie wartości o indeksie 0 (zero) dwa razy
dlaczego chciałeś użyć znaku "mniejszy niż" do sprawdzenia wartości pobranej z tablicy (zmienna liczby) do zmiennej "przechowującą" całą tablicę (zmienna zbiorliczb).
if (liczby < zbiorliczb)
no ten zapis nie sumuje wartości, tylko nadpisuje ciągle nową
suma = liczby;
przecież użyłeś wcześniej prawidłowego zapisu do sumowania ( += )
suma += liczby[i];
Druga wersja podana przez Ciebie różni się Moim zdaniem tylko rodzajem pętli jaką użyłeś, przez co zmienia się sposób pobierania i przekazywania wartości
czyli [ on-line ]
public class Main
{
public static void main(String[] args) {
int[] liczby = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
System.out.println(sumaliczb(liczby));
}
private static int sumaliczb (int[] liczby) {
int suma = 0;
for (int liczba : liczby)
suma += liczba;
return suma;
}
}