Java for schleife?

2 Antworten

Du stehst hier vor einem Problem, das durchaus bekannt und eigentlich vermeidbar wäre.
Die Rede ist von sogenannten "Magic Numbers". Das sind Zahlen, die im Code auftauchen, die aber nicht erklärt werden.

Üblicherweise löst man dieses Problem, indem man sich eine Variable definiert, in diese die Zahl packt und dann die Variable verwendet. Durch den namen der variable ist dann klar, was die zahl bedeuten soll.

Hier wird die 120 vermutlich ein Zwischenabstand zwischen zwei Elementen zein un die 400 wahrscheinlich die Positionierung des ganzen in der y-Richtung.

Die Variable x ist nicht gut benannt.

Also:

Du erstellst in der Schleife für jeden Durchlauf erst ein Object der Klasse Quadrat und dann eines der Klasse Dreieck.

Anschliessen packst du diese in ein Array. q und d (die variablen könnte man auch besser bennen. Aber da sist etwas weniger tragisch als das Ominöse x. XD)

Anschliessend ruft du auf diesem Objekt jeweis die Methode:

Zeichnedich auf.

Hinter der offenen Klammer stehen die parameter:

Einmal der Stift. (Ein objekt warscheinlich)

Dann eine Zahl und dann noch eine zahl.

Was die methode mit diesen Zahlen macht. Muss man in der Methode Nach schauen. Bzw. in der Dokumentation dieser methode. (Idealerweise würde ein kommentar drüber stehen die dir erklärt was sie macht und wofür diese 3 parameter stehen.)

Vermutlich sind dies aber die X und Y koordinaten wo die beiden dinge gezeichnet werden sollen.

Wobei das nicht so ganz passt.

Ist aber egal:

Der eine Parameter ist berechnet. Aus x + i *120

Die ersten beiden objekte werden also mit den Parametern 20 und 400 gezeichnet.

Die nächsten mit 140 und 400

dann mit 260 und 400

und die letzten beiden mir 380 und 400.

Was das nun genau bedeutet. Ist aus dem Code nicht erslichtlich. Dazu muss man sich wie gesagt die zeichne dich methode anschauen.

Meine vermutugn ist das es eben eine Koordinate ist. Und die berechnung sort für eine Fixe verschiebung aller neuen Objekte. x gibt dabei an wo diese Reihe oder der Sturm an objekten starten soll.

Auch als Tipp: Solche lose im code stehenden Zahlen sind auch zu vermeiden. Die 400 sollte man in eine benannte variable packen. bzw. ne Konstante etc.

Und genauso die 120.

Denn dann währe eventuell aus dem aufruf schon ersichtlich was diese zahlen denn dein sollen.

Edit: achja. i

i ist die interationsvariable. Sie gibt quasi an in welchen schleifen durchlauf man sich befindet. bzw. diese variable wird in der schleife hoch gezählt. im ersten durchlauf ist sie hier 0 im zweiten 1 usw. bis 3.

die bezeichnung i für eine solche schleifen variable ist konvention. Für innere schleifen werden auch zusätzlich j und k manchmal verwendet.

und der code: q[i] bedeutet ich möchte das ding aus dem array q an stelle i haben.


XspezifiC 
Beitragsersteller
 18.02.2025, 16:26

Ok danke, das hat aufjedenfall geholfen. Was dabei rauskommt weiß ich bereits :), wusste nur nicht wofür diese 120 bei dem ganzem sein soll und wie ich das ganze in Verbindung bringen sollte