Arrays?

3 Antworten

Von Experte MrAmazing2 bestätigt

Lass doch die If-Abfrage und Verwende stattdessen in der For-Schleife eine Schrittweite von zwei statt eins.


poppypearl 
Fragesteller
 19.03.2022, 16:00

kannst du mir kurz auf die Sprünge helfen wie ich das machen kann ?

1
Destranix  19.03.2022, 16:01
@poppypearl

Da müsste ich dir die Lösung verraten. Lass uns das interaktiv gestalten:

Erklär mir, wie eine For-Schleife funktioniert.

0
poppypearl 
Fragesteller
 19.03.2022, 16:02
@Destranix

wiederholt sich so lange bis die grenze erreicht is die an der zweiten stelle steht in der klammer... i++ steht dafür dass es sich um eins erhöht

1
Destranix  19.03.2022, 16:04
@poppypearl

Genau! Wenn du jetzt, wie hier, aber nur jedes zweite Element haben möchtest, wie machst du das, wie muss du die Parameter der For-Schleife verändern?

0
poppypearl 
Fragesteller
 19.03.2022, 16:04
@Destranix

müsste ich dann i++ umändern zu i = i+2 ? damit es immer um zwei hochgeht ?

1
Destranix  19.03.2022, 16:05
@poppypearl

Richtig!

Und dann brauchst du auch die If-Abfrage nicht mehr, denn dann erwichst du ganz automatisch nur jedes zweite Element.

0
poppypearl 
Fragesteller
 19.03.2022, 16:11
@Destranix

mhh irgendwie klappt der test noch nicht ganz... aber du hast mir auf jeden fall weitergeholfen danke :))

1
Von Experte Destranix bestätigt

Momentan prüfst du, ob die Zahl, die im Array an Stelle i ist (array[i]) gerade ist (%2==0). Das ist natürlich nicht, was gefragt war. Was du brauchst:

Wenn der Index gerade ist, dann addiere.

if (i%2==0) summe = summe + array[i];
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Ohne dir jetzt den Fehler vorzusagen, wie es die anderen gemacht haben, hätte ich dir stattdessen den Hinweis gegeben, dir mal Daten anzeigen zu lassen, die während des "Summieren" auftreten.

Dann wäre dir der Fehler wohl selbst aufgefallen:

public class ArrayTest {
    public static int funktionEins( int [] array ){
        int summe = 0;
        for ( int i = 0; i < array.length; i++ ){
            if ( array[i]%2 == 0 ){
		        System.out.println("Index: " + i + " Summe: " + summe + " Arrayvalue: " + array[i]);
		        summe = summe + array[i];
           }
        }
        return summe;
    }
    public static void main(String args[]) {
        int array1[] = new int[] {1,2,3,4,5,6,7,8};
        funktionEins(array1);
    }
}