Java Schleifenproblem
repi 12.12.2007 - 22:40 950 6
repi
Addicted
|
Bin grade dabei java zu lernen, hab aber bei dieser Methode ein problem mit der 'doWhile' Schleife. Idee is die: wenn ich "j" eingebe, soll ich immer wieder aufs neue einen Betrag eingeben können. Die Verneinung mit "n" funktioniert, da wirds programm beendet. public void aufsKontoEinzahlen(){
boolean ende = false;
int Betrag = 0;
System.out.println("Gib Betrag ein: ");
Betrag = Eingabe.gibein(Betrag);
System.out.println( + Betrag + " eingezahlt. Neuer Kontostand: "
+ (Betrag + kontostand));
char Frage = ' ';
do {
System.out.print("Nochmal einzahlen (j/n): ");
Frage = Eingabe.gibein(Frage);
}while(Frage != 'j' && Frage != 'n');
if (Frage == 'n') ende = true;
while(!ende);
if (ende = true)
System.out.println("Thx, Wiedersehn");
}
}
Bearbeitet von repi am 12.12.2007, 22:46
|
__Luki__
bierernste Islandkritik
|
Ich hab' schon etwas getrunken heute - aber kann das schon stimmen?
"while(Frage != 'j' && Frage != 'n'); "?
|
that
Hoffnungsloser Optimist
|
while(!ende);
Was soll das tun? So lange "ende" false ist, tut das nichts, bis in alle Ewigkeit. Dir fehlt da ein passendes do {...} davor. Dafür kannst du dir das "if" danach sparen.
|
Vivo
Dreamworker
|
Was soll das tun? So lange "ende" false ist, tut das nichts, bis in alle Ewigkeit. Dir fehlt da ein passendes do {...} davor. Dafür kannst du dir das "if" danach sparen. Abgesehen davon sind die beiden letzten if's und die 2te while-Schleife sinnlos (zu diesem zeitpunkt ist dein programm eigentlich schon abgeschlossen). Kleiner Tip (da es sonst anscheinend noch keiner erwähnenswert gefunden hat): Der Teil deines Programms, der sich wiederholen soll muss in der Schleife stehn, nicht wie bei dir drüber!
|
repi
Addicted
|
while(!ende);
Was soll das tun? So lange "ende" false ist, tut das nichts, bis in alle Ewigkeit. Dir fehlt da ein passendes do {...} davor. Dafür kannst du dir das "if" danach sparen.
ende ist eben nicht false while(!ende) negiert ja ende, und mein bool'scher wert oben ist ja mit false deklariert. also bedeutet doch !ende solange ende nicht false ist, oder? ich bin schon draufkommen. nach dem ausdruck while(!ende) darf kein ; stehen. das wäre eine leere Anweisung. denn das while mit dem ; am ende wäre gleichzusetzen mit while(!ende) { ; } deswegen läuft die schleife endlos, der rest sollt passen. Auf jeden Fall funktioniert jetzt das ganze drum. Dieser Codeblock war nur ein kleiner Teil, dass hätt ich vllt. dazu sagen müssen. Sry die letzte if-Anweisung hab ich noch rausgefunden dass die unnötig ist.
|
that
Hoffnungsloser Optimist
|
ende ist eben nicht false while(!ende) negiert ja ende, und mein bool'scher wert oben ist ja mit false deklariert. also bedeutet doch !ende solange ende nicht false ist, oder? "ende" ist false, daher ist "!ende" true und die Schleife läuft endlos. Der Wert einer Variable ändert sich nur, wenn du ihr was zuweist, nicht wenn du sie verwendest.
|
repi
Addicted
|
ok, ich werd mich da nochmal hinsetzen und das ganze teil bis aufs letzte zerlegen und durchdenken. dieses java lernen macht echt süchtig, ich träum sogar scho davon. Danke für die Antworten!
|