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

So kannst du Java Arrays mit for Schleife füllen und auslesen

Java Arrays For Schleife

Wir haben in einem anderen Beitrag bereits über Java Arrays gesprochen. So ein Array speichert Zahlen, Texte oder Objekte in eine Art Liste. Und dann kannst du ganz bequem über den Index das Array füllen und die bereits enthaltenen Werte abrufen. Ganz bequem? So, wie ich dich aus dem letzten Beitrag entlassen habe, war das […]

So verwendest du die Java Codeblöcke zur Automatisierung

Java Codeblöcke

In diesem Beitrag geht es um den Einsatz von Java Codeblöcken oder Initialisierungsblöcken. Viele Wege führen nach Rom. Oder Alle Wege führen nach Rom. Heißt es in einem alten Sprichwort. Und so ähnlich ist es bei der Java Programmierung. In diesem Beitrag möchte ich dir einen weiteren Weg vorstellen, wie du Variablen eines Java Objektes […]

Java Übung 26 – Das erste kleine Java Spiel

Java Übung Zahlenraten

In dieser Java Übung geht es darum ein kleines Java-Spiel zu erstellen. Und zwar Zahlen raten. Was kannst du dir darunter vorstellen? Du gibst einen bestimmten Wertebereich an. Zum Beispiel 0 bis 100. Und das Java Programm erstellt eine Zufallszahl in diesem Bereich. Dann fordert dich das Programm auf, die Zahl zu raten. Du gibst […]

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. […]

Verwalte deine Java Klassen in packages

java klassen verwalten

Es macht durchaus Sinn deine Java Klassen in verschiedenen Paketen zu organisieren. Wieso? Es sprechen mehrere Gründe dafür: Du kannst doppelte Klassennamen verwenden Du kannst deinen Code oder deine Klassen inhaltlich trennen Du kannst Hierarchien abbilden. Und genau um diese Dinge geht es in diesem Beitrag

Der wichtige Unterschied zwischen Java Methoden

Java Methoden Unterschied

Jetzt machen wir Nägel mit Köpfen. Dieses Sprichwort stammt aus den Anfängen des Industriezeitalters. Denn früher wurden Nägel nicht industriell, sondern per Hand gefertigt. Und da kam es schon einmal vor, dass versehentlich Nägel ohne Kopf produziert wurden. Was blieb ist das Sprichwort „Nägel mit Köpfen“ Und dieses steht sinngemäß für eine schnelle, qualitativ hochwertige […]

So kannst du in den Java Klassen Attribute anlegen

Java Klassen Attribute

Die bisherigen Java Klassen in unserem Einführungsbeispiel besitzen noch keine Attribute. Das ändern wir und legen diese jetzt an. In diesem Beitrag erfährst du: Warum Variablen in deinen Klassen eine entscheidende Rolle spielen. Was es bedeutet eine Variable zu deklarieren. Wo du Attribute in den Java Klassen anlegen darfst und wo nicht. Wie du durch […]