Merkwürdiges For-Loop Problem

vR34kSH0w

Mitglied
Hallo zusammen,
ich habe ein etwas komisches Problem. Etwas Ähnliches ist mir schonmal passiert, aber ich weiß leider nicht mehr, wie ich das gelöst habe.

Folgendes funktioniert:
[JAVA=81]
for(;😉 {
System.out.println("Some useless text");

if(value == -1)
continue;

this.setVisible(false);

return value;
}
[/code]

Ohne System.out.println funktioniert es dann nicht mehr, also so:

[JAVA=81]
for(;😉 {
if(value == -1)
continue;

this.setVisible(false);

return value;
}
[/code]

Auch, wenn ich damit rechne, dass ich irgendetwas total Dämliches übersehe, bitte ich um Hilfe.

Danke schonmal & Gruß

vR34k$h0w
 
Ohne den originalen Code kann man dazu nicht viel sagen. Wenn ich raten müsste: Im Original steht da nicht
Code:
"Some useless text"
sondern z.B.
Code:
"Wert: " + komplizierteBerechnungMitNebenwirkungen()
.

Ark
 
Eben nicht ^^ Das ist schon der originale Quelltext. Deswegen nenne ich das ja "merkwürdig". Diese Zeile ist völlig sinnlos und muss auch keine Ausgabe sein. Ich habe zum Beispiel einfach mal den Text eines JLabel umgesetzt. Auch dann funktioniert es !?! Ich bin ratlos...
 
Danke! Das war es scheinbar. Ich warte jetzt einfach ein paar Millisekunden nach jedem Durchlauf - läuft!

Das klingt irgendwie so, als ob deine Endlosschleife in einem Thread läuft und die Variable "value" von aussen gesetzt wird.

Deklariere "value" mal als "volatile" (private volatile int value), das könnte dann funktionieren.

Allerdings wäre es klüger, sowas über notify/wait abzuwickeln.

Bernd
 
Eventuell wäre es auch sinnvoller, direkt setVisible(false) aufzurufen und nicht value auf -1 zu setzen, damit dann ein anderer Thread (der auch nicht der EDT sein kann) setVisible(false) aufruft.
 

Zurück
Oben