if/while, Ausgabe fehlerhaft!

Maxxx

Mitglied
Hallo zusammen,

ich habe einen kleinen Code geschrieben, die Ausgabe soll lauten a-b c-d

Allerdings wird das "a" nicht ausgegeben und ich komme hier nicht weiter, wo ist hier mein Denkfehler ???:L

Code:

Java:
class mm {
public static void main (String [] args){

int x = 3;
while (x > 0){

 x = x - 1; {
 System.out.print("-");
 }
 
if (x > 2){
System.out.print ("a");
}

if (x == 2){
System.out.print ("b c") ;
}

if (x == 1){
System.out.print ("d");
x = x -1;
}


} // while
} // main
} // class
 

faetzminator

Gesperrter Benutzer
x hat beim [c]if[/c] von a bereits den Wert 2.
Du solltest dein Programm richtig formatieren, dann ist es lesbar (und "Kommentare" wie [c]// while[/c] sind unnötig).
Du solltest die Standards einhalten, Klassen Camelcase mit beginnendem Grossbuchstabe, Methoden und Variablen mit beginnendem Kleinbuchstabe.
 
G

Gonzo17

Gast
Wenn du das erste Mal in die while-Schleife gehst, dann wird deine Variable x sofort um 1 vermindert und hat dann den Wert 3. Somit geht er nicht in die if-Abfrage x > 2 sondern sofort in x == 2. Also startest du mit x = 4 oder du überlegst dir was anderes (sieht sowieso sehr verwirrend aus was du da machst :D ).
 

alexej.lvov

Mitglied
Hallo Maxx,


in die W-Schleife geht er rein wenn x größe 0 un da es am Anfang ja 3 ist, geht er rein.
Dann ist etwas unklar, was du von ihm willst.
In der Zeile 7 wird x auf 2 gesetzt.

Die geschweifelte Klammer (Begrenzen ein Block von Anweisungen) und somit schpielen hier kein Rolle, also führ er das aus und druckt - aus.

Dann geht er in die If Schleife und druckt a aus nur dann, wenn x>2 und x ist bereits 2 also geht er nicht rein und druckt kein "a" aus.

Ich hoffe es hilft dir weiter :)
 

Maxxx

Mitglied
Wenn du das erste Mal in die while-Schleife gehst, dann wird deine Variable x sofort um 1 vermindert und hat dann den Wert 3. Somit geht er nicht in die if-Abfrage x > 2 sondern sofort in x == 2. Also startest du mit x = 4 oder du überlegst dir was anderes (sieht sowieso sehr verwirrend aus was du da machst :D ).

Bin ja auch noch Anfänger:-D

Wenn ich x den Wert 4 zuteile habe ich zwar das a angezeigt, jedoch ein minus vor dem a das da nicht sein sollte.

Aber warum verwirrend, würdest du es anders schreiben?

Die "Kommentare" habe ich schlicht zu meinem besseren Verständnis eingefügt, ich denke ich werde sie bald nicht mehr brauchen.
 

faetzminator

Gesperrter Benutzer
Die "Kommentare" habe ich schlicht zu meinem besseren Verständnis eingefügt, ich denke ich werde sie bald nicht mehr brauchen.

Die brauchst du nicht mehr, sobald du deinen Code einrückst ;) Ich bräuchte das bei diesem Code auch, und noch so benötigte ich lange Zeit, bis ich den Code durchschaute...

Verschieb einfach die Abfrage für a vor die Ausgabe von '-' und das Dekrementieren der Variable.
 

Wortraum

Bekanntes Mitglied
Obwohl es schon gesagt wurde, möchte auch ich Dir dringend raten, den Quelltext ordentlich zu formatieren und sich an Konventionen zu halten. Auch wenn es jetzt vielleicht unwichtig scheint: später ist es unglaublich wichtig!

Klassennamen fangen mit Großbuchstaben an (so wie beispielsweise auch String). Ansonsten immer auf die Ebene (Einrückungen!) achten. Sonst ist Dein Programm recht verwirrend, weil am Anfang der Schleife und unter einer Bedingung auch plötzlich mittendrin die Zählvariable verringert wird. Statt am Ende einfach noch einmal zusätzlich 1 abzuziehen, damit die Schleife beendet wird, ist es besser, die Schleife einfach eins weniger laufen zu lassen. Wenn Du sowieso schon etwas zählst, tut es auch eine einfache for-Schleife.

Java:
public class Mm {
    public static void main(String[] args) {
        for (int i = 3; i > 0; --i) {
            if (i > 2) {
                System.out.print("a-");
            } else if (i == 2) {
                System.out.print("b c");
            } else if (i == 1) {
            	System.out.print("-d");
            }
        }
    }
}

Natürlich funktioniert es auch mit einer while-Schleife.
 
G

Gonzo17

Gast
Aber warum verwirrend, würdest du es anders schreiben?

Das kommt eben darauf an, was du damit machen willst. Wenn ich eine Ausgabe "a-b c-d" haben wollte, würde ich System.out.println("a-b c-d"); schreiben. ;) Aber wahrscheinlich willst du es ja irgendwie dynamisch zusammenbauen. Da würde ich mir dann halt Schritt für Schritt überlegen, welche Teile ich auseinander haben will und die dann in der richtigen Reihenfolge ausführen bzw aneinanderhängen. :)
 

Maxxx

Mitglied
Die brauchst du nicht mehr, sobald du deinen Code einrückst ;) Ich bräuchte das bei diesem Code auch, und noch so benötigte ich lange Zeit, bis ich den Code durchschaute...

Verschieb einfach die Abfrage für a vor die Ausgabe von '-' und das Dekrementieren der Variable.

Also habe ich einfach nur die falsche Reihenfolge gehabt, jetzt funktioniert es, danke :)
 

Maxxx

Mitglied
Obwohl es schon gesagt wurde, möchte auch ich Dir dringend raten, den Quelltext ordentlich zu formatieren und sich an Konventionen zu halten. Auch wenn es jetzt vielleicht unwichtig scheint: später ist es unglaublich wichtig!

Klassennamen fangen mit Großbuchstaben an (so wie beispielsweise auch String). Ansonsten immer auf die Ebene (Einrückungen!) achten. Sonst ist Dein Programm recht verwirrend, weil am Anfang der Schleife und unter einer Bedingung auch plötzlich mittendrin die Zählvariable verringert wird. Statt am Ende einfach noch einmal zusätzlich 1 abzuziehen, damit die Schleife beendet wird, ist es besser, die Schleife einfach eins weniger laufen zu lassen. Wenn Du sowieso schon etwas zählst, tut es auch eine einfache for-Schleife.

Java:
public class Mm {
    public static void main(String[] args) {
        for (int i = 3; i > 0; --i) {
            if (i > 2) {
                System.out.print("a-");
            } else if (i == 2) {
                System.out.print("b c");
            } else if (i == 1) {
            	System.out.print("-d");
            }
        }
    }
}

Natürlich funktioniert es auch mit einer while-Schleife.



Für dieses Beispiel ging es mir ausschliesslich um die Nutzung von "if/while", bei "for" bin ich noch nicht angelangt, werde mir dein Beispielcode aber mal zu Gemüte führen, danke:)

Beim Format meines codes werde ich mich dann künftig wohl besser an die Standards halten.
 

Maxxx

Mitglied
Das kommt eben darauf an, was du damit machen willst. Wenn ich eine Ausgabe "a-b c-d" haben wollte, würde ich System.out.println("a-b c-d"); schreiben. ;) Aber wahrscheinlich willst du es ja irgendwie dynamisch zusammenbauen. Da würde ich mir dann halt Schritt für Schritt überlegen, welche Teile ich auseinander haben will und die dann in der richtigen Reihenfolge ausführen bzw aneinanderhängen. :)

Naja zum lernen des Zusammenspiels erschien es mir halt der beste Weg:)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
S While-Schleifen Ausgabe als String? Java Basics - Anfänger-Themen 1
A Verständnisproblem Ausgabe Do-While-Schleife Java Basics - Anfänger-Themen 3
-horn- While Ausgabe Netbeans Java Basics - Anfänger-Themen 3
M Ausgabe aus WHILE Schleife in String speichern? Java Basics - Anfänger-Themen 3
W while-Schleife Ausgabe Java Basics - Anfänger-Themen 3
I Frage zur Ausgabe do while mit break Java Basics - Anfänger-Themen 2
DrahtEck Arrays und While-Loop Java Basics - Anfänger-Themen 27
C Erste Schritte While-Schleife Java Basics - Anfänger-Themen 3
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
S Erste Schritte While Schleifen Java Basics - Anfänger-Themen 11
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
Say do-while Syntak Java Basics - Anfänger-Themen 3
A Return in While Schleife Java Basics - Anfänger-Themen 6
J do..while Schleife Java Basics - Anfänger-Themen 14
W Wiederkehrende Konsolen-Anzeige mit do-While?! Java Basics - Anfänger-Themen 33
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
D Array mit while-schleife Java Basics - Anfänger-Themen 12
B do while Schleife Java Basics - Anfänger-Themen 3
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
M While Schleife? Java Basics - Anfänger-Themen 4
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
J for /while Schleife Java Basics - Anfänger-Themen 5
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
S Do-While-Schleife Java Basics - Anfänger-Themen 2
S While Schleife Java Basics - Anfänger-Themen 4
S Do-While Schleife Java Basics - Anfänger-Themen 6
J Von While zu for Java Basics - Anfänger-Themen 42
G While/If Programm Java Basics - Anfänger-Themen 2
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
G Flussdiagramm-Do while Java Basics - Anfänger-Themen 4
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
B Verschachtelung von For-Schleife in While Schleife Java Basics - Anfänger-Themen 14
G while schleife Java Basics - Anfänger-Themen 11
G while schleife mit array Java Basics - Anfänger-Themen 12
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
G While schleife Java Basics - Anfänger-Themen 2
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
O Erste Schritte Zahlendreieck mit While Java Basics - Anfänger-Themen 2
D Break Sprungmarken Problem einer While True in While True Java Basics - Anfänger-Themen 6
A Erste Schritte while-Schleife Java Basics - Anfänger-Themen 38
W While-Loop unterbrechen Java Basics - Anfänger-Themen 4
X While Do schleife funtioniert nicht Java Basics - Anfänger-Themen 5
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4
W while Schleife und Bedingung Java Basics - Anfänger-Themen 11
T While Schleife funktioniert nicht Java Basics - Anfänger-Themen 14
J Input/Output Strings aneinander reihen mit while schleife Java Basics - Anfänger-Themen 25
M Methoden while liefert nur den ersten Datensatz Java Basics - Anfänger-Themen 12
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
J While Schleife Java Basics - Anfänger-Themen 19
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
helldunkel While Schleife trotz false Java Basics - Anfänger-Themen 4
E Threads Thread in While-Schleife nur einmal starten Java Basics - Anfänger-Themen 2
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
b1ck while-Schleife Java Basics - Anfänger-Themen 10
b1ck Integer initialisieren bei do-while-Schleife Java Basics - Anfänger-Themen 11
kilopack15 DoWhile-Schleife als While-Schleife darstellen Java Basics - Anfänger-Themen 9
A While-Schleife funktioniert nicht! Java Basics - Anfänger-Themen 33
E Alphabet mit einer while Schleife ausgeben Java Basics - Anfänger-Themen 3
I Mehre While-Schleifen hintereinander Java Basics - Anfänger-Themen 13
T while schleife starten , beeneden und wieder Starten Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben