Skip to main content

Java Übung 28 – Welche Werte stecken im Array

Diese umfangreiche Java Übung ist eine weitere Übung zu Java Arrays.

Ich habe dafür schon ein kleines Beispiel vorbereitet.
Gegeben ist ein Array, welches Integer Werte speichert.

Der Java Code zum Array sieht so aus:


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[]= new int [5];
		arrayEins[1]=2;
		arrayEins[3]=18;
		arrayEins[0]=22;
		arrayEins[2]=21;
		arrayEins[4]=7;
		arrayEins[5]=8;
	}
}
  1. Lass dir alle Werte, welche sich im Array befinden auf der Konsole ausgeben.
    Achte auf die Reihenfolge und beginne beim kleinsten. (0 bis 4)
  2. Multipliziere das dritte Element mit dem zweiten Element des Arrays.
  3. Dividiere das erste Element durch das vierte Element. Achte dabei, auf Nachkommastellen.
  4. Falls das fünfte Element ein Teiler des dritten Elementes ist, dann soll die Bildschirmausgabe:
    „5. Element ist Teiler vom 3 .Element“ erscheinen.
    Andernfalls erscheint die Ausgabe „5. Element ist kein Teiler vom 3. Element“
  5. Ersetze den Wert des ersten Elementes durch die Zahl 127.

Zusatz:
Lagere alle Programmstrukturen in Methoden aus.
Die Methoden sollen das Array entgegennehmen und dieses dann entsprechend verarbeiten.
Implementiere also die Methoden:

  • liesArray
  • multipliziereArray
  • dividiereArray
  • istTeiler
  • ersetzeElement

 
Die letzte Methode „ersetzeElement“ verändert das erste Element.
Und dies hat Auswirkungen auf die Methode „dividiereArray“.

Deshalb sollen die Auswirkungen auch sichtbar werden.
Und darum soll die letzte Methode „ersetzeElement()“ die Methode „dividiereArray()“ mit neuen veränderten Wert aufrufen.
 
Na dann, wünsche ich dir viel Spaß bei dieser umfangreichen Java Übung zu den Arrays.
 
PS.
Wie du siehst, setzt sich diese Java Übung aus mehreren kleinen Übungen zusammen.
Du kannst jede Übung separat erledigen.
In der Lösung zur Übung fange ich selbst bei jeder Teilaufgabe immer wieder bei null an.


Wie ich bereits geschrieben habe, unterteile ich die Lösung dieser Java Übung in mehrere Abschnitte.

Zuerst das Wichtigste.
Das Element 5 ist kein Element des Arrays.
Das muss raus. Das Array umfasst 5 Elemente.
Und das sind die Elemente 0 bis 4.
 
Falls du das Element 6 arrayEins[5]=8; nicht löschst, bekommst du eine Fehlermeldung.
Und diese lautet: „java.lang.ArrayIndexOutOfBoundsException“.
 
Also lösche es oder kommentiere es aus, bevor du weitermachst.


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[]= new int [5];
		arrayEins[1]=2;
		arrayEins[3]=18;
		arrayEins[0]=22;
		arrayEins[2]=21;
		arrayEins[4]=7;
		//arrayEins[5]=8; nicht Element des Arrays
 
	}
}

Beginnen wir mit der ersten Lösung
 

So kannst du die Elemente nach ihrem Index ausgeben.

Es gibt verschiedene Möglichkeiten.
 
Du kannst es mit einer einfachen Inkrementierung machen.
Dazu schreibst du einfach System.out.println(arrayEins[i]);.
Und dann lässt du i inkrementieren bzw. hochzählen. i++
 
So würde der Java Code aussehen:


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[]= new int [5];
		arrayEins[1]=2;
		arrayEins[3]=18;
		arrayEins[0]=22;
		arrayEins[2]=21;
		arrayEins[4]=7;
		//arrayEins[5]=8; nicht Element des Arrays
		 
		int i=0;
		System.out.println(arrayEins[i]);
		i++;
		System.out.println(arrayEins[i]);
		i++;
		System.out.println(arrayEins[i]);
		i++;
		System.out.println(arrayEins[i]);
		i++;
		System.out.println(arrayEins[i]);
		i++;
	}
}

Etwas eleganter wäre dies über eine Schleife zu lösen.
Zum Beispiel mit while Schleife.


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[]= new int [5];
		arrayEins[1]=2;
		arrayEins[3]=18;
		arrayEins[0]=22;
		arrayEins[2]=21;
		arrayEins[4]=7;
		//arrayEins[5]=8; nicht Element des Arrays
		 
		int i=0;
		while (i<=4){
			System.out.println(arrayEins[i]);
			i++;
		}
	}
}

Die Schleifenbedingung lässt die Anweisung so oft ausführen, bis i =4 ist.
Und bei jedem Schleifendurchlauf wird das Element ausgegeben und i um eins erhöht.
 
Problem dabei ist, dass du eine lokale Variable i deklarieren musst, nur um zu zählen.
Die For Schleife hat diese bereits.
 
Der eleganteste Weg Arrays zu lesen, ist somit die for-Schleife.


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[]= new int [5];
		arrayEins[1]=2;
		arrayEins[3]=18;
		arrayEins[0]=22;
		arrayEins[2]=21;
		arrayEins[4]=7;
		 
		 
		for (int i = 0; i<arrayEins.length; i++){
			System.out.println(arrayEins[i]);
		}
	}
}

Die For Schleife liest jetzt alle Elemente des Arrays und gibt deren Inhalt zurück.
Außerdem wurde als Abbruchbedingung eine Variable arrayEins.length vereinbart.
Diese Variable speichert die Länge des Arrays und du musst somit keine Zahlen einsetzen.
Das Ganze wird somit auch flexibler.
 
Kommen wir zur nächsten Aufgabe.
 

Die zweite Teilaufgabe dieser Java Übung bestand darin die Elemente des Arrays zu multiplizieren.

Ganz konkret solltest du das dritte Element mit dem zweiten Element multiplizieren.
 
Und so geht’s.


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[]= new int [5];
		arrayEins[1]=2;
		arrayEins[3]=18;
		arrayEins[0]=22;
		arrayEins[2]=21;
		arrayEins[4]=7;
		 
	System.out.println(arrayEins[2]*arrayEins[1]);        
	}
}

Du kannst das Ergebnis natürlich auch in einer lokalen Variable speichern.
Und diesen Wert lässt du dir am Bildschirm ausgeben.


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[] = new int[5];
		arrayEins[1] = 2;
		arrayEins[3] = 18;
		arrayEins[0] = 22;
		arrayEins[2] = 21;
		arrayEins[4] = 7;
 
		int produkt = arrayEins[2] * arrayEins[1]; //lokale Variable produkt
 
		System.out.println(produkt);
	}
}

Okay, läuft?
Na dann kommen wir zur nächsten Aufgabe.
 

In der dritten Teilaufgabe dieser Java Übung solltest du zwei Elemente dividieren.

Du solltest das erste Element durch das vierte Element dividieren.
 
Schau dir bitte einmal die Elemente 1 und 4 des Arrays an.
Diese wären 22 und 18.
22 geteilt durch 18 ist eine Kommazahl.
Im Array stecken aber nur Integer Werte.
 
Um jetzt eine Kommazahl zu erhalten, musst du casten.
Und so geht’s.


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[] = new int[5];
		arrayEins[1] = 2;
		arrayEins[3] = 18;
		arrayEins[0] = 22;
		arrayEins[2] = 21;
		arrayEins[4] = 7;
 
		System.out.println((double)arrayEins[0]/arrayEins[3]);
	}
}

Na klappt?
Dann gleich zur nächsten Aufgabe.
 

Die vierte Aufgabe der Java Übung besteht darin, ein Element des Array auszuwerten.

Ganz konkret, solltest du das 5. Element prüfen, ob es Teiler des 3. Element ist.
Falls dies der Fall ist, soll die Bildschirmausgabe „5. Element ist Teiler vom 3 .Element“ erscheinen.
 
In einem if /else Block würde die Prüfung so aussehen:
(arrayEins[2]%arrayEins[4]==0)
Element 3 wird durch Element 5 geteilt. Es kommt ein Restwert heraus.
Falls dieser Restwert 0 ist, wird die nachfolgende Anweisung ausgeführt.
 
Und so sieht der ganze Java Code aus:


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[] = new int[5];
		arrayEins[1] = 2;
		arrayEins[3] = 18;
		arrayEins[0] = 22;
		arrayEins[2] = 21;
		arrayEins[4] = 7;
		 
		if (arrayEins[2]%arrayEins[4]==0){
			System.out.println("5. Element ist Teiler vom 3. Element");
		}
		else {
			System.out.println("5. Element ist kein Teiler vom 3. Element");
		}
	}
}

Natürlich könnte die Bedingung auch so aussehen.


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[] = new int[5];
		arrayEins[1] = 2;
		arrayEins[3] = 18;
		arrayEins[0] = 22;
		arrayEins[2] = 21;
		arrayEins[4] = 7;
		 
		if (arrayEins[2]%arrayEins[4]!=0){
			System.out.println("5. Element ist kein Teiler vom 3. Element");
		}
		else {
			System.out.println("5. Element ist Teiler vom 3. Element");
		}
	}
}

Es wurde lediglich die Bedingung geändert.
Aus gleich wurde ungleich.
 
Und….
Wenn das fünfte Element des Arrays kein Teiler des dritten Elementes ist, dann wird der if Block ausgeführt, ansonsten der else Block.

Es ist genau das gleiche.
Nur eben anders formuliert.
 

Die letzte Teilaufgabe dieser Java Übung ist wieder etwas leichter.

Du sollst lediglich den Wert des ersten Elementes durch die Zahl 127 ersetzen.
 
Aus Kontrollzwecken lass ich mir dies wieder am Bildschirm anzeigen.


public class ArrayWerte {
 
	public static void main(String[] args) {
		int arrayEins[] = new int[5];
		arrayEins[1] = 2;
		arrayEins[3] = 18;
		arrayEins[0] = 22;
		arrayEins[2] = 21;
		arrayEins[4] = 7;
	 
		arrayEins[0]=127;
		System.out.println(arrayEins[0]);
	}        
}

Das war verhältnismäßig einfach, oder?
 

Kommen wir zur Zusatzaufgabe. Lagere alle Programmstrukturen in Methoden aus.

Die Methoden sollten statisch sein.
Schließlich möchtest du auf diese zugreifen, ohne ein Objekt erschaffen zu müssen.
 
Außerdem erwarten alle Methoden in der Parameterliste ein Array.
Und beim Aufruf in der Main-Methode übergibst du dann das Array an diese Methoden.
 
Da die Methoden lediglich Bildschirmausgaben erzeugen, genügt der Rückgabewert void.
 
Und so sieht der komplette Code zu dieser Java Übung aus.


 
public class ArrayWerte {
 
	/*
	 * Lösung zur Aufgabe 1
	 */
	static void liesArray(int[] arrayEins) {
		for (int i = 0; i < arrayEins.length; i++) {
			System.out.println(arrayEins[i]);
		}
	}
 
	/*
	 * Lösung zur Aufgabe 2
	 */
	static void multipliziereArray(int[] arrayEins) {
		System.out.println(arrayEins[2] * arrayEins[1]);
	}
 
	/*
	 * Lösung zur Teilaufgabe 3
	 */
	static void dividiereArray(int[] arrayEins) {
		System.out.println((double) arrayEins[0] / arrayEins[3]);
	}
 
	/*
	 * Lösung zur Teilaufgabe 4
	 */
	static void istTeiler(int[] arrayEins) {
		if (arrayEins[2] % arrayEins[4] == 0) {
			System.out.println("5. Element ist Teiler vom 3 .Element");
		} else {
			System.out.println("5. Element ist kein Teiler vom 3 .Element");
		}
	}
 
	/*
	 * Lösung zur Teilaufgabe 5
	 */
	static void ersetzeElement(int[] arrayEins) {
		arrayEins[0] = 127;
		System.out.println(arrayEins[0]);
		dividiereArray(arrayEins);// Aufruf der Division Methode mit neuen Wert
	}
 
	public static void main(String[] args) {
		int arrayEins[] = new int[5];
		arrayEins[1] = 2;
		arrayEins[3] = 18;
		arrayEins[0] = 22;
		arrayEins[2] = 21;
		arrayEins[4] = 7;
 
		liesArray(arrayEins); //Aufruf der Methode und Übergabe des Arrays
		multipliziereArray(arrayEins);
		dividiereArray(arrayEins);
		istTeiler(arrayEins);
		ersetzeElement(arrayEins);
	}
}

Ähnliche Beiträge

Eine Java Konsoleneingabe machst du über den Scanner

Es wird Zeit für die erste Java Konsoleneingabe. Und diese Eingaben machst du über den Java Scanner. Was ist das? Der Scanner ist eine vorgefertigte Java Klasse, welche Java mit seiner API anbietet. Das heißt du musst nichts selbst erschaffen. Du musst nur wissen, wie du darauf zugreifst. Erst einmal musst du einen Scanner anlegen. […]

So kannst du in Java Und Verknüpfung anlegen und auswerten

Java Und

In Java stehen dir eine Menge Operatoren zur Verfügung. Einer dieser Operatoren ist der Und-Operator. Dies ist ein logischer Operator, da dieser sogenannte Wahrheitswerte mit einander verknüpft. Also…. Was erwartet dich in diesem Beitrag? Zuerst möchte ich dir die Aussagenlogik hinter dem Und-Operator zeigen. Also wann sind Aussagen wahr und wann sind diese falsch. Dann […]

Java Übung 31: Speichere deine Würfe im Array

Java Übung Array Würfelspiel

In dieser Java Übung soll ein Würfelspiel simuliert werden. Lege eine Klasse namens, Würfelspiel an. Diese Klasse enthält eine statische Methode, namens würfeln(). Diese Methode erwartet einen Parameter vom Datentyp Integer, namens „anzahlWuerfe“. Diese Variable/Parameter repräsentiert die Anzahl der Würfe. Nachdem der Methode die Anzahl der Würfe übergeben wurde, soll die Methode Zufallszahlen zwischen 1 […]

So verwendest du den Java Oder Operator

Java Oder Operator

Kennst du das auch aus deiner Schulzeit? Du schreibst eine Klassenarbeit in irgendeinem Fach. Nehmen wir einfach mal an – Mathe. Jetzt bist gerade fertig mit deiner Arbeit. Und zu Hause wirst du gefragt: „Und wie lief es?“ Du antwortet:“ Ganz gut. Es wird bestimmt eine Eins oder eine Zwei.“ Drei oder vier Tage später […]

Java Polymorphie – besserer Code und mehr Möglichkeiten

Java Polymorphie Vorteile

Polymorphie ist das Herzstück jeder objektorientierten Sprache. Nicht nur in Java – auch in Python, Javascript und in anderen Sprachen. Aber was bedeutet Polymorphie eigentlich? Polymorphie oder auch Polymorphismus genannt, kommt aus dem Griechischen. Es bedeutet Vielgestaltigkeit. Etwas freier übersetzt, kannst du es auch als Facettenreichtum bezeichnen. Im Grunde genommen zielt die ganze Java Vererbung […]

Java Objekte leben auf dem Heap

Java-Objekte-Heap

Java hat eine interne Speicherverwaltung. Eigentlich ist es nicht nur eine. Es sind mehrere.   Uns interessieren nur zwei. Methoden und lokale Variablen werden auf dem Stack verwaltet. Und die Speicherverwaltung für Java Objekte und den Instanzvariablen findet auf dem Heap statt.   Ja wieso braucht Java eigentlich zwei Speichersysteme?   Es ist ganz einfach. […]

So kannst du zweidimensionale Java Arrays anlegen und nutzen

Java Arrays zweidimensional

Eines der bedeutendsten Instrumente in der Mathematik ist das Koordinatensystem. Die gedankliche Grundlage dieses Werkzeuges lieferte der französische Naturwissenschaftler und Philosoph Rene Descartes. Man muss sich einmal verdeutlichen, was dies für die damalige Zeit bedeutete. Bisher wurden mathematische Probleme lediglich durch Berechnungen gelöst. Denke an geometrische Figuren, wie Dreiecke und Vierecke. Der Umfang wurde lediglich […]