Hallo!
Ich hab eine kleine Verständnissfrage zu meinem vorliegenden Buch (Core Java) bin grad auf Seite 102 folgende. Da stellt sich mir eine kleine Frage die ich nicht so ganz verstehe.
Hier mal der Code
Als kurze Erklärung, das Programm macht nichts anderes als einen Betrag einzulesen den man jedes Jahr sparen will und den entsprechenden Zinssatz dazu. Dannach rechnet das Programm das neue Guthaben aus und fragt ob man genug hat.
Ansich funktioniert auch alles so wie es soll, aber nun zu meiner Frage.
in.next(); ist dafür da mir ein einzelnes Zeichen einzulesen und in.nextLine(); um mir eine ganze Zeile einzulesen.
Wenn ich allerdings die Zeile 36 durch input = in.nextLine(); kann ich nichtsmehrs eingeben und die Schleife wird sofort beendet.
Warum ist das so? Es ist sicher ein Logikfehler meinerseits... aber welcher?
Schonmal Danke für Hilfe =)
Ich hab eine kleine Verständnissfrage zu meinem vorliegenden Buch (Core Java) bin grad auf Seite 102 folgende. Da stellt sich mir eine kleine Frage die ich nicht so ganz verstehe.
Hier mal der Code
Code:
package whileschleife2;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Welchen Betrag wollen Sie jedes Jahr sparen?");
double zahlung = in.nextDouble();
System.out.println("Zinssatz in %");
double zinsSatz = in.nextDouble();
double saldo = 0;
int jahr = 0;
String input;
// Saldo aktualisieren, solange Ziel noch nicht erreicht
do {
// Zahlung und Zins des aktuellen Jahres addieren
saldo += zahlung;
double zins = saldo * zinsSatz / 100;
saldo += zins;
jahr++;
// Aktuellen Saldo ausgeben
System.out.printf("Nach %d Jahren betraegt Ihr Guthaben %+,.2f%n", jahr, saldo);
// Fragen ob bereit für den Ruhestand, und Eingabe holen
System.out.println("Bereit fuer den Ruhestand? (J/N)");
input = in.next();
}
while (input.equals("N"));
}
}
Als kurze Erklärung, das Programm macht nichts anderes als einen Betrag einzulesen den man jedes Jahr sparen will und den entsprechenden Zinssatz dazu. Dannach rechnet das Programm das neue Guthaben aus und fragt ob man genug hat.
Ansich funktioniert auch alles so wie es soll, aber nun zu meiner Frage.
in.next(); ist dafür da mir ein einzelnes Zeichen einzulesen und in.nextLine(); um mir eine ganze Zeile einzulesen.
Wenn ich allerdings die Zeile 36 durch input = in.nextLine(); kann ich nichtsmehrs eingeben und die Schleife wird sofort beendet.
Warum ist das so? Es ist sicher ein Logikfehler meinerseits... aber welcher?
Schonmal Danke für Hilfe =)