Ausgabe in falscher Reihenfolge

MichaelTT

Mitglied
Hallo liebes Board,

da dies mein erster Beitrag ist, lasst mich kurz vorstellig werden: mein Name ist Michael, ich bin 22 Jahre alt und studiere Elektrotechnik im 3. Semester. Nun steht auf meinem Stundenplan unter anderem das Fach Java. Die Klausur habe ich bereits hinter mir, die lief wirklich super und ich wage zu behaupten, dass ich aus den Vorlesungen doch einiges mitgenommen habe. Auf Raten meines Profs nutze ich diese (Link) Java-Version, diese habe ich sogar eben nochmal neu installiert.

Trotz allem treibt mich meine Java-VM zur Verzweiflung. Meistens sitzen die Fehler vor dem Bildschirm und ich wäre froh, wenn ihr mich in dieser Hinsicht bestätigen könntet ;-).

In der Java-Klasse "Bruchfinder" (ist ein Tool) befindet sich eine main-Methode, die auch ausgeführt wird. Direkt in der main-Methode kommt es dann zu folgendem Aufruf:

Code:
if (activated == false){
            System.err.println("Sie nutzen weiterhin die Testversion.");
        }
        
        double soll = 1, ist;
        int a = 1, b = 1, cnt = 0;
        System.out.println("TEST");
        
if (activated == true){
            ...<mehr Code>
        }

Das Programm läuft ganz normal ab, immer erscheint in der Ausgabe die Zeile "TEST" vor (!) der Zeile mit dem "Sie nutzen weiterhin die Testversion", obwohls im Code ja umgekehrt ist. Das Phönomen ist mir bereits öfter aufgefallen: manche Ausgaben (wie diese) erscheinen immer falsch herum, andere dagegen nur beim ersten Aufruf. Beim zweiten Ausführen der main-Methode läuft alles ganz normal.

Kennt jemand von euch dieses Phänomen? Hat das was mit den verschiedenen Kanälen "out" und "err" zu tun? Verwende ich vielleicht eine ungeeignete Java-Version?

Verzweifelte Grüße,
Michael
 

kaoZ

Top Contributor
Das hier könnte man eleganter lösen,

Java:
if (activated == false){
            System.err.println("Sie nutzen weiterhin die Testversion.");
        }
        
        double soll = 1, ist;
        int a = 1, b = 1, cnt = 0;
        System.out.println("TEST");
        
if (activated == true){
            ...<mehr Code>
        }

und zwar so :

Java:
boolean activated = false;
		
		if (!activated){
            System.err.println("Sie nutzen weiterhin die Testversion.");
        }
		else{
			System.out.println("Sie haben erfolgreich eine Vollversion erworben");
		}

außerdem ist das hier nicht genutzter Code

Java:
  double soll = 1, ist;
        int a = 1, b = 1, cnt = 0;
     //    System.out.println("TEST");


Die Frage die sich stellt ist nun was genau soll denn Passieren :) ?

ZU deinem Problem mit der Ausgabe, das liegt auch daran wie genau du deinen boolschen Wert initialisiert hast.
 
Zuletzt bearbeitet:

stg

Top Contributor
Nein, das Problem bei der Ausgabe sind tatsächlich die verschiedenen Ausgabestreams, die beide unabhängig voneinander, und zwar dann, wenn sie lustig sind, in die Konsole schreiben.
Mit einem Aufruf von
Code:
.flush()
erzwingst du, dass "sofort" in die Konsole geschrieben wird, aber selbst damit kannst du nicht 100% garantieren, wer gewinnt, sprich wer schneller schreibt...
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Da muss stg recht, nun sehe ich auch was genau du mit "in falscher Reihenfolge" meintest.

eleganter lösen könnte man es trotzdem :p
 

MichaelTT

Mitglied
Danke für die Antwort,


das hatte ich vergessen zu erwähnen. "activated" wird zu Beginn auf "false" gesetzt und (bei einer gewissen Bedingung) auf "true" umgesetzt. Im Beispielcode ist aber davon auszugehen, dass immer noch "false" eingetragen ist. Der nicht genutzte Code wird dann weiter unten in meinem Programm nötig (doch das hat ja mit der Ausgabe nichts mehr zu tun).

Du hast Recht, es lässt sich eleganter lösen - aber hat mein Code denn einen Haken, der dazu führen könnte, dass die Ausgabe in der falschen Reihenfolge erfolgt?

Das Programm macht ja etwas (in Codefragmenten, die ich jetzt nicht kopiert habe). Mir gehts nur um die Reihenfolge der Ausgabe, die ich nicht verstehe. Falls du mehr (oder auch das ganze Programm) haben möchtest, kann ich auch das gerne posten :).

@stg
Das habe ich schon befürchtet. Java entwickelt sich für mich immer mehr zur Krücke: der Bildschirminhalt kann nur mit OS-abhängigen Befehlen geleert werden, die Ausgabereihenfolge ist nicht sicher.. Auf irgendwas muss ich mich als Entwickler doch verlassen können, oder? ;-)

Verschwindet das Problem denn bei einer anderen Ausgabe z.B. im DOS-Fenster? Falls ja, wie wäre für eine solche Ausgabe der Befehl?

Grüße
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Die Frage die sich mir dann nocht stellt, warum bietest du nicht eine Gui an ^^ dann musst du dich nicht mit der Eingabeaufforderung herumschlagen, und demnach auch nicht mit den Problemen die das mit sich bringt ?
 

stg

Top Contributor
Das Problem ist einfach, dass du den Error-Stream als Ausgabe für den Benutzer missbrauchst. Der Vorteil von zwei getrennten Streams liegt z.B. darin, dass du sie auf verschiedene Ziele lenken kannst. Etwa den Standard-Ausgabestrom auf die Konsole und den Error-Stream in ein log-File.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
V Multiplikationstafel - Ausgabe Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
D Warum erfolgt folgende Ausgabe und warum? Java Basics - Anfänger-Themen 4
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
A Wiederholte Ausgabe vermeiden Java Basics - Anfänger-Themen 16
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
J Ausgabe Gesamtpreis Java Basics - Anfänger-Themen 39
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
B HQL / Hibernate, GroupBy und Ausgabe als Double Java Basics - Anfänger-Themen 1
J StrinBuffer in der Ausgabe Java Basics - Anfänger-Themen 4
H ausgabe? Java Basics - Anfänger-Themen 32
B Ausgabe Zahlenreihe Horizontal Java Basics - Anfänger-Themen 3
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
K Array Ausgabe Java Basics - Anfänger-Themen 2
L Datentypen Ausgabe von eigenem Datentypen Java Basics - Anfänger-Themen 2
C 1x1 Ausgabe auf dem Bildschirm Java Basics - Anfänger-Themen 3
L Fehler im Programm bei Ausgabe Java Basics - Anfänger-Themen 21
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
F Warum ist die Ausgabe hier 1? Java Basics - Anfänger-Themen 4
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
H Ausgabe Java Basics - Anfänger-Themen 6
U Ausgabe von Dateiinhalt während Programmnutzung fehlerhaft Java Basics - Anfänger-Themen 3
Jackii ArrayList ausgabe ohne Dopplung Java Basics - Anfänger-Themen 11
F Erste Schritte Subnet Calculator - Ausgabe der NetID und der Broadcast Java Basics - Anfänger-Themen 4
D Wiederholende Ausgabe Java Basics - Anfänger-Themen 3
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
A Datei Ein und Ausgabe FileWriter und printWriter Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben