wie programmiere ich das,Ablauf?

3 Antworten

Es gibt verschiedene Varianten, je nachdem wie weit du schon im Thema Schleifen oder sogar Streams drin bist.

package de.daCypher.exercises;

import java.util.Arrays;
import java.util.Random;

public class OddEven {
	public static void main(String[] args) {
		final int HOW_MANY = 20;
		
		// Array mit Zufallszahlen erzeugen (hier: 20 Zahlen im Bereich 0-100)
		int[] numbers = new Random().ints(HOW_MANY, 0, 100).toArray();
		System.out.println("Verwendete Zahlen: " + Arrays.toString(numbers));
		
		// Ungerade Zahlen zählen per Schleife (mit Zählvariable)
		int odd = 0;
		for (int i = 0; i<numbers.length; i++ ) {
			if (numbers[i] % 2 != 0) {
				odd++;
			}
		}
		
		// oder besser: Ungerade Zahlen zählen per for-each-Schleife
		odd = 0;
		for (int number: numbers) {
			if (number % 2 != 0) {
				odd++;
			}
		}
		
		// Alternativ: Ungerade Zahlen zählen per Stream (Anzahl)
		odd = (int) Arrays.stream(numbers).filter(n->n%2!=0).count();
		
		// oder: Ungerade Zahlen zählen per Stream (Summe)
		odd = Arrays.stream(numbers).map(n->n%2).sum();
		
		// Ausgabe der gezählten Zahlen
		System.out.println("Anzahl ungerade Zahlen: " + odd);
		System.out.println("Anzahl gerade Zahlen: " + (HOW_MANY - odd));
	}
}

Mit einer for Schleife. Da gibt es eine besondere in Java, wenn der Datentyp Iterable (?) ist.

int count = 0;

for ( int i : feld )

{

if ( i % 2 == 0 )

count++;

}

Nun hast du die Anzahl der geraden Elemente aus dem Objekt feld in der Variablen count.

Dann erstellst du 2 Variablen, in der du die Anzahl der geraden und ungeraden Zahlen speicherst.


TrustMeDude1 
Beitragsersteller
 11.10.2020, 20:40

wie mache ich das bzw. wie wird das dann anschrieben ? Weil ich prüfe jede stelle im Feld ob sie durch modulu zwei teilbar ist

0