Mehrere Methoden in Schleifendurchlauf

absolut85

Mitglied
Hallo JAVA Gemeinde, ich bin noch relativ frisch in der JAVA Programmierung, daher hab ich auch gleich eine Frage, und zwar geht es um eine Sieben Segment Anzeige.

Die Variable "SingleNumber" bringt aus einer Mehtode die einzelnen Zahlen der 5 stelligen Zahl.
Also bei 12345 --> singleNumber = 1
Durch die Schleife wird der vorgang solange wiederholt bis Ende: singleNumber = 5

Die Methode "printSegmentsRowOne" druckt die erste Zeile der SegmentAnzeige aus.

Das stimmt alles soweit und funktioniert auch alles.

Das Problem was ich jetzt habe ist, dass die Anzeige ja aus 5 Zeilen besteht.
Das heißt ich muss jetzt irgendwie noch die Methoden "printSegmentsRowTwo", "printSegmentsRowThree", "printSegmentsRowFour" und "printSegmentsRowFive" dazu bekommen :/

Ich hoffe ich konnte es verständlich erklären, danke

[JAVA=70]
for (int h=1; h<=5;h++)
{
singlenumber=getSinglenumber(h, result);

printSegmentsRowOne(isMinus, singlenumber);

}
[/code]
 
Das habe ich bereits probiert aber, das er mit jeder zahl der schleife eine Printmethode durchlaufen müsste. 🙁

[JAVA=72]
for (int h=1; h<=5;h++)
{
singlenumber=getSinglenumber(h, result);
printSegmentsRowOne(isMinus, singlenumber);
printSegmentsRowTwo(isMinus, singlenumber);
printSegmentsRowThree(isMinus, singlenumber);
}
[/code]
funktioniert leider nicht!
 
ich würde eine methode schreiben, die deine zahl % 10 rechnet und dann ausgibt...danach einfach durch 10 teilen lassen....dann hast du die LETZTE zahl...bei dir also die 5...und dann die methode so oft wiederholen, bis eine bestimmte abbruchbedingung gegeben ist....
 
Hallo absolut85, und willkommen im Forum! 🙂

Ich hoffe ich konnte es verständlich erklären
Ähm, ehrlich gesagt noch nicht so ganz. Ich spekuliere mal:
1) du hast mehrere sieben Segment Anzeigen, die in "Zeilen" untereinander angeordnet sind
2) jede Zeile besteht aus einer SSA, die genau eine Ziffer oder ein +/- Zeichen anzeigen kann
3) die Methode printSegmentRowX bringt eine Ziffer auf die SSA in Zeile X
4) jede SSA muss geringfügig anders angesteuert werden (daher die verschiedenen Methoden printSegmentRowX)
5) das Problem liegt nun darin, das du in einer Schleife wunderbar einfach die einzelnen Ziffern deiner darzustellenden Zahl extrahieren kannst (mit der Methode getSinglenumber(stelle, zahl)), aber dann für jede Stelle eine individuelle printSegmentRowX-Methode aufrufen musst - was dem Sinn einer Schleife irgendwie widerspricht..
Liege ich damit richtig?
 
das habe ich bereits,
das ist eine von fünf PrintMethoden für die jeweilige Reihe

[JAVA=20]
//REIHE EINS
static void printSegmentsRowOne(boolean isMinus, int position)
{
if (isMinus)
{
printSpace();
}
switch(position)
{
case 1: case 4: case 6:
printSpace(); break;
case 0: case 2: case 3: case 5: case 7: case 8: case 9:
printLine(); break;
}
}
[/code]
Das ist die Methode zum berechnen der einzelnen Zahlen (singlenumbers)
[JAVA=30]
static int getSinglenumber(int h, int result)
{
int singlenumber=0;
int div=10000;
for (int i=1; i<=h; i++)
{
singlenumber = result / div;
result = result % div;
div = div/10;
}

return singlenumber;
}
[/code]

Das heißt es geht nur nuch um den Schleifen durchlauf da oben
 
Habe ich das richtig verstanden, dass du zu jedem Schleifendurchlauf eine andere Methode aufrufen willst?
Dann könntest du deinen Code aus Beitrag 3 mit einer if Abfrage für jede Methode ergänzen

Java:
for (int h=1; h<=5;h++) {
               singlenumber=getSinglenumber(h, result);    
               if (h==1)
                   printSegmentsRowOne(isMinus, singlenumber);
               if (h ==2)
                    printSegmentsRowTwo(isMinus, singlenumber);
               ...                                      
}

Weiterhin könntest du auch auf die Schleife verzichten

Java:
printSegmentsRowOne(isMinus, getSinglenumber(1, result));
printSegmentsRowTwo(isMinus, getSinglenumber(2, result));
printSegmentsRowThree(isMinus, getSinglenumber(3, result));
...
 
Zuletzt bearbeitet:
@Dow Jones, soweit ich das jetzt verstanden habe ist deine Annahme korrekt 😉

@lang Haar, mit diesem Code komme ich auch auf kein ergebnis.

Ich bin gerade dabei, das ich das ganze auf den Kopf stelle und die reihen abfrage. so ne ka****

Danke für eure Tipps
 

Zurück
Oben