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

8 Java Datentypen, die du kennen solltest

Java Datentypen

Java Datentypen Ich gebe zu, ich hasse dieses Thema. Denn es ist eigentlich nichts weiter als graue Theorie. Dennoch müssen wir dieses Thema behandeln. Um schnell in das Thema zu kommen, stelle ich dir eine Übersicht aller primitiven Datentypen zur Verfügung. Wieso primitive? Es gibt außer den primitiven Datentypen, noch Referenztypen. Und diese Referenztypen sind […]

So kannst du Java Konstruktoren anlegen und überladen

Java Konstruktoren

Der Name sagt es schon. Java Konstruktoren konstruieren oder bauen Java Objekte. Und diese Objekte baut der Konstruktor auf Vorlage der entsprechenden Java Klasse. In diesem Beitrag zeige ich dir natürlich verschiedene Ansätze wie du den Konstruktor einsetzt. Ich zeige dir dies Schritt für Schritt. Dabei zeige ich dir auch verschiedene Dinge, welche nicht funktionieren. […]

Java lernen durch ständiges Testen – Nutze die Testumgebung von Eclipse

Java Programmierung lernen

Probieren geht über studieren Wenn du wirklich Java Programmierung lernen möchtest, dann solltest du Java nicht aus einem Buch lernen. Du solltest auch nicht strikt von dieser oder anderen Webseiten lernen. Etwas wirklich zu lernen, setzt die Bereitschaft voraus, etwas zu probieren. Denn nur durch eigenes Probieren gelangst du zum Wesentlichen. Durch Probieren wirst du […]

So unterstützen dich Java Vererbungstabellen beim Entwurf

Java Vererbungstabellen

Bei der Java Vererbung gibt es zwei Klassenarten bzw. -stufen. Die Superklassen, welche einen allgemeinen Typen darstellen Und die spezielleren Unterklassen, welche die Superklasse um bestimmte Funktionen erweitern. Jetzt ist dieses ganze „Der-erbt-von-dem-Konzept“ mitunter sehr schwierig darzustellen. Zum Beispiel in einem Werkzeugkoffer. In einem Werkzeugkoffer befinden sich sämtliche Werkzeuge, von Säge bis Bohrmaschine. Wie machst […]

Nutze die Fernbedienung für deine Java Objekte

Auf Java Objekte greifst du mit einer Art Fernsteuerung zu. Diese bezeichnet man als Referenz oder als Verweis. Und diese Referenzvariablen möchte ich dir jetzt einmal vorstellen. Doch bevor wir loslegen, lass mich noch ein paar Dinge loswerden. 🙂 Ich habe es ja schon einmal in einem früheren Beitrag erwähnt. Java unterscheidet zwischen primitiven und […]

Java Übung 25 – Simuliere eine Gelddruckmaschine

Java Übung Gelddruckmaschine

In dieser Java Übung geht es um Schleifen. Und zwar möchte ich, dass du eine virtuelle Geldruckmaschine erstellst. Was meine ich damit? Du gibst in der Konsole einen x-beliebigen Betrag ein und das Programm gibt dir virtuelle Geldscheine zurück. Ein Beispiel: Du gibst die Zahl 400 ein. Dann liefert dir das Programm 2 x 200 […]

Der bedeutende Unterschied zwischen Klassenvariablen und Instanzvariablen

Java Klassenvariablen

Bei der Java Programmierung unterscheidet man drei Arten von Variablen. Als erste Gruppe sind die lokalen Variablen zu nennen. Auf diese gehe ich in einem separaten Artikel ein. Mich interessieren die zwei anderen Variablentypen. Zum einen existieren Klassenvariablen. Und dann sind da noch die Instanzvariablen. Wo liegt der Unterschied? Instanzvariablen stehen einem Objekt zur Verfügung. […]

Ein Java Fenster erzeugen mit dem JFrame

Java-Fenster-erzeugen

Ein Java Fenster erzeugen mit Swing. Java Swing – was ist das? Zum Erstellen von grafischen Benutzeroberflächen, kurz GUI, bietet Java eine eigene Standardklasse an. Diese Klasse nennt sich Swing. Aus dieser Swing-Klasse heraus können Objekte erstellt werden. Diese Objekte lassen sich in vier verschiedene Kategorien einteilen. Fenster und Dialoge bilden das Grundgerüst einer grafischen […]

Java Übung 17: Char-Zeichen mit For-Schleife

Java Übung Char Zeichen For Schleife

In dieser Java Übung werden wir uns die Zeichen des Character Datentypen näher anschauen. Die einzelnen Zeichen sollen auf der Konsole ausgegeben werden. Und wie? Das ganze sollst du mit einer For Schleife machen. Erstelle deshalb eine Klasse „CharZeichen“. In dieser Klasse implementierst du dann eine Klassenmethode, namens „gibZeichen“. Und im Methodenrumpf durchläuft eine For-Schleife […]