Vermeintliche Überspring von Befehlen
lima-city → Forum → Programmiersprachen → Java
ausgabe
code
durchlauf
faktor
gleiche objekt
gleichheit
inhalt
methode
objekt
probe
problematik
programm
richtige methode
richtige tun
schleife
string
system
tun
url
zweite zahl
-
Also ich habe folgendes problem wenn ich etwas in meine TextArea ausgeben und dann einen Timer Starte der von 1000 bis 1 zählt gibt das Programm nichts in die Textarea aus sonder "überspringt das". Ich hoffe ihr könnt mir helfen.
Ach übrigens ich habe das ganze schon mit wait ; und Thread.sleep() probiert passiert das gleiche.
Ich hoffe das liegt nur daran das ich igendt einen Fehler gemacht habe.
int faktor ; String ausgabe = "Bitte geben sie eine Zweite Zahl ein"; area3.setText(ausgabe); String probe = area3.getText(); System.out.println("probe" + probe +" "+ "ausgabe"+ausgabe); if(ausgabe.equals(probe)){ for ( faktor = 1000; faktor >= 1 ; faktor -- ) { System.out.println(faktor ); } System.out.println(faktor); if(faktor == 0) { area3.setText(""); } else{ System.out.println("Timer funktioniert nicht"); } }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich kenn mich zwar gar nicht mit Java aus, aber mach mal das Leerzeichen bei "faktor --" raus, dass es so aussieht: "faktor--"
-
was gibt das programm denn auf der console aus?
so wie ich das sehe, müsste eigentlich bei jedem durchlauf am ende "timer funktioniert nicht" ausgegeben werden.
mfg -
Ich frage mich warum du die Strings ausgabe und probe vergleichst... Nichtsdestotrotz. Meine Ansätze:
1)
Aber eventuell könnte es daran liegen, dass die Strings tatsächlich nicht gleich sind. Kann sein, dass bei getText( ) noch irgendein Steuerzeichen (nicht druckbares Zeichen) angehängt wurde. Was gibt dir diese Zeile eigentlich aus:
?System.out.println("probe" + probe +" "+ "ausgabe"+ausgabe);
2)
Die equals-Methode dürfte schon das Richtige tun. Trotzdem könntest du auch mal die compareTo(String)-Methode verwenden, etwa so:
if (ausgabe.compareTo(probe) == 0) { System.out.println("Strings sind gleich"); } else { System.out.println("Strings sind ungleich."); }
Problematik bei Java:
Objekte mit '==' auf Gleichheit zu überprüfen geht schief. Denn da wird quasi nur nachgeguckt, ob es sich um das gleiche Objekt handelt, aber nicht auf den Inhalt verglichen. Du hast ja zwei String-Objekte. Zwei verschiedene. Aber die haben den gleichen Inhalt (Text).
Die equal-Methode sollte "eigentlich" den Inhalt vergleichen, du hast also schon die richtige Methode ausgewählt (Quelle). Das funktionierte bei mir aber irgendwie auch nicht immer.
Deshalb würde ich es mal mit der compareTo-Methode probieren. Die vergleicht auf jeden Fall nur den Inhalt. -
Poste uns mal die Console, weil die raterei bringt uns nicht viel.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage