Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo liebe Java Gemeinde,
bin neu hier, also entschuldigt, wenn ich was falsch mache . Auch programmiere ich noch nicht so lange.
Mein Problem:
Ich komme mit meinem Quellcode immer in eine Endlosschleife.
Die Aufgabenstellung:
Die Klasse Teiler
Ein Objekt der Klasse Teiler liefert nacheinander alle Teiler der Zahl zahl.
Der Aufruf von hatNochElement() ermittelt den nächsten Teiler von zahl
und liefert true, wenn es noch einen weiteren Teiler für zahl gibt; ansonsten
wird false zurückgegeben. Anschließend wird aktuellerTeiler auf den
Wert des nächstenTeilers von zahl gesetzt.
Der Aufruf von naechstesElement() liefert den nächsten Teiler von zahl an
den Aufrufer zurück. Anschließend wird aktuellerTeiler um 1 erhöht.
Beispiel: alle Teiler einer Zahl
Aufzaehlung meineTeiler= new Teiler(10);
while(meineTeiler.hatNochElement())
System.out.print (meineTeiler.naechstesElement()+
" ");
führt zu folgender Ausgabe der jeweiligen Teiler
1 2 5 10
Also ich habe das jetzt nachvollzogen und erhalte das gleiche Ergebnis, dass Du auch in Deinem Posting erwähnst.
Unter welchen Bedingungen kommst Du in die Endlosschleife ???
public interface Aufzaehlung
{
public boolean hatNochElemente();
public Object naechstesElement();
}
Und hier die aufrufende Klasse (ganz unten für die Klasse Teiler relevant):
Java:
public class AufzaehlungTest
{
public static void main (String args[])
{
Aufzaehlung[] beispiel = new Aufzaehlung[4];
beispiel[0] = new Zeichenkette("Dies ist eine Zeichenkette");
while(beispiel[0].hatNochElemente())
System.out.print(beispiel[0].naechstesElement()+ " ");
System.out.println();
beispiel[1] = new ZeichenketteMitChar("Wo steht ein e?", 'e');
while(beispiel[1].hatNochElemente())
System.out.print(beispiel[1].naechstesElement()+ " ");
System.out.println();
beispiel[2] = new ZeichenketteMitKlammern("<head><title>Lebenslauf</title></head>",'<', '>');
while(beispiel[2].hatNochElemente())
System.out.print(beispiel[2].naechstesElement()+ " ");
System.out.println();
beispiel[3] = new Teiler(5);
while(beispiel[3].hatNochElemente());
System.out.print(beispiel[3].naechstesElement()+
" ");
}
}
Hier zu muss ich sagen, dass ich noch weitere Klassen machen musste, die aber alle funktionieren! Die Endlosschleife wird durch die Teiler Klasse verursacht!
Falls ihr die anderen Klassen auch braucht, einfach bescheid sagen.
Danke, Danke und nochmals vielen lieben Dank!!!
Ich saß mehrere Stunden an der Fehlersuche und habe diesen winzigen Fehler nicht gesehen!
Ihr seid die Besten! :applaus: