Input/Output Anfänger Array-Verständnis Frage

cybermailer

Mitglied
Hallo,

ich wieder mal - blick mich grad nicht ganz durch an einer Zeile - bitte
korrigiert mich wenn ich etwas falsch interpretiere:

Zum Verständnis In. & Out. sind Klassen vom Lehrer zum Lernen bzw. Werte einlesen.
Also ich habe Gegenwärtig keine Ahnung was da genau los ist...

Java:
	public static void main(String[] arg) {
		In.open("input.txt"); /* Angabe Datei mit Zahlen */
		int[] a = readArray(); /*Legt ein Array an und verweist auf eine Methode readArray */
		Out.print("Eingabe: ");
		printArray(a); /* Gibt das fertig angelegte Array aus*/
		invert(a); /*Verweist auf die invert Methode*/
		Out.print("Invertiert: ");
		printArray(a); /*Gibt die Array Liste nach der invert Methode aus*/
		In.close();
/*ENDE */



Java:
static int[] readArray() { /*Methode readArray*/
		int len = In.readInt(); /*Wenn die Liste aus 7, 3, 4 bestehen würde so würde jetzt die Variable len den Wert 7 haben oder?? Was passiert genau?*/
		int[] a = new int[len]; /*Was passiert hier?*/
		for (int i = 0; i < len; i++) /*Was passiert hier*/ 
			a[i] = In.readInt(); /*und was hier*/
		return a;
	}

Ich versuche mir Java selbst beizubringen und hoffe auf Eure Hilfe!

- bitte helft mir indem ihr mir mit den Zahlen 7,3,4 erklärt was passiert dann habe ich leichteres Verständnis.

DANKE!
 
Zuletzt bearbeitet von einem Moderator:
Fühlt es sich nicht komisch an Java in PHP Tags zu schreiben? 😉
Hab es mal korrigiert, bitt ein Zukunft selber darauf achten.
 
Um ganz genau sagen zu können, mit wie vielen Feldern das Array initialisiert werden soll, fehlt der Code von
Code:
readInt()
aus der statischen Klasse
Code:
In
.

Aber rein von der Logik her scheint es doch darum zu gehen, Zeichen aus einer Textdatei zu lesen und diese in einem Array für ein Programm als ganze Zahlen verfügbar zu machen.
Demnach müsste das Array mit 3 Feldern initialisiert werden, weil in deiner Textdatei nur 3 Zahlen stehen.

[JAVA=3] int[] a = new int[len]; /*Was passiert hier?*/
for (int i = 0; i < len; i++) /*Was passiert hier*/
a = In.readInt(); /*und was hier*/
return a;[/code]


Zeile 3 aus readArray() initialisiert ein int-Array
Code:
a
mit der Anzahl an Feldern, die aus der Anzahl der aus der Textdatei ausgelesenen Zeichen ermittelt wurden.

Zeile 4 ist der Kopf einer for-Schleife. Ein Zähler i wird einmalig initialisiert. Die Schleife wird nun so oft durchlaufen und der Zähler mit len verglichen, bis i den gleichen Wert hat wie len. i wird nach jedem Schleifendurchlauf inkrementiert (i++), es wird also jeweils der Wert 1 zu i addiert.

Zeile 5 gehört zu dem, was in allen Schleifendurchläufen ausgeführt werden soll. Hier soll offenbar eine Zahl eingegeben werden, welche anschließend im int-Array gespeichert wird. Der Speicherplatz im Array wird mit der Variable i übergeben.

Aber das sind alles Grundlagen, die in Büchern besser erklärt werden.
Hier z.B. Galileo Computing :: Java ist auch eine Insel - 2 Imperative Sprachkonzepte
 
aha danke und was passiert hier genau:

Java:
int len = In.readInt();
		int[] a = new int[len];

Ich meine wenn ich es Schritt für Schritt mit Zettel & Bleistift durchdenken würde...Zahl für Zahl...?
 
1. Zeile: Eine Variable a wird angelegt und mit der Rückgabe von In.readInt() gefüllt.
2. Zeile: Es wird ein int[] Array der Länge len angelegt und der erstellten Variable a zugewiesen.
 
aha jetzt wird's klarer. Danke Eike.

Ist das len eine variable oder Funktion wie -> length.

Ich dachte nämlich dass eine Zahl z.B. die Erste aus dem *.txt hergenommen wird und
als int in der Variable len abgelegt wird. Danach wird diese Variable die soeben eingelesen wurde im Array a abgelegt. (Ist das also falsch?)
 
Nochmal:

zuerst wird in die Variable
Code:
len
die Zahl eingelesen, die aus dem Eingabedatenstrom (
Code:
In
) kommt. Anschließend wird ein Feld vom Typ
Code:
int
erstellt, welches genau
Code:
len
Elemente hat. Zuletzt wird diesem Feld der Name
Code:
a
gegeben, über den du es dann verwenden kannst.

@Eike: du hast in deinem letzten Beitrag einen Schreibfehler drin: das
Code:
readInt()
wird natürlich der Variablen
Code:
len
zugeordnet, nicht
Code:
a
.
 
Zuletzt bearbeitet:

Zurück
Oben