Konsoleneingabe mit Abbruchbedingung beenden

Diskutiere Konsoleneingabe mit Abbruchbedingung beenden im Java Basics - Anfänger-Themen Bereich.
D

datamox

Guten Abend zusammen,

ich hoffe sehr, dass es euch allen gut geht.

Der untenstehende Code ermöglicht es mir, einen Betrag in die Konsoleneingabe einzulesen, die MwSt. dazu zu addieren und das Ergebnis auszugeben und das immer wieder aufs neue, was mir die While-Schleife ermöglicht.
Allerdings, und da fehlt mir aktuell das Verständnis für, möchte ich eine Abbruchbedingung in Form eines Buchstabens bei Eingabe in die Konsole, hinzufügen und hoffe, dass ihr mir hierbei einen Denkanstoß mitgeben könnt.

Der Code anbei: (IDE:Eclipse / BS:Win10H)


Java:
[/B]
import java.util.Scanner;

public class Projekt_Mehrwertsteuer {


    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        double mwstSatz = 0.19;
        
        
        while (true) {
        System.out.println("Bitte einen Betrag zur Berechnung eingeben:");
        double nettobetrag = scanner.nextDouble();
        System.out.println(nettobetrag + nettobetrag * mwstSatz + "€");
        }
    
    }

}
[B]
Vielen Dank und euch einen angenehmen Abend,
mox
 
mihe7

mihe7

Allerdings, und da fehlt mir aktuell das Verständnis für, möchte ich eine Abbruchbedingung in Form eines Buchstabens bei Eingabe in die Konsole, hinzufügen und hoffe, dass ihr mir hierbei einen Denkanstoß mitgeben könnt.
In dem Fall könntest Du mit nextLine() statt nextDouble() arbeiten. Dann sorgst Du dafür, dass die Schleifenbedingung nicht mehr erfüllt ist, falls der gewünschte Buchstabe eingelesen wurde. Außerdem wandelst Du im Fall einer Zahl den gelesenen String per Double.parseDouble in ein double um.
 
D

datamox

Hej Mihe7, danke Dir für deine prompte Rückmeldung. Hier sehe ich ja gerade meine Herausforderung, wie binde ich in diesen Code den gewünschten Buchstaben ein, der bei Eingabe das Programm beendet? Die Schleife läuft so lange bis ich bspw. alle Werte berechnet habe und möchte daraufhin die Schleife verlassen durch Eingabe bspw. des Buchstabens "x". mox
 
mihe7

mihe7

Das habe ich doch oben geschrieben: Du liest eine Zeile per nextLine() ein und die vergleichst Du mit dem Buchstaben. Entspricht es dem Buchstaben beendest Du die Schleife, sonst wandelst Du per Double.parseDouble() die Zeile in ein double um.
 
MoxxiManagarm

MoxxiManagarm

Wenn es irgendein Buchstabe sein kann, dann könntest du auch nextDouble() beibehalten und die InputMismatchException abfangen, die bei Eingabe eines Buchstaben und nextDouble() geworfen wird.
 
D

datamox

Hej @mihe7, offen gesagt und das bitte ich zu entschuldigen, fehlt mir wie erwähnt noch das dafür notwendige Verständnis deinen Vorschlag umzusetzen und die dafür entsprechenden Anpassungen vorzunehmen. Könntest du mich hier bei Gelegenheit nochmals unterstützen?
 
D

datamox

Wenn es irgendein Buchstabe sein kann, dann könntest du auch nextDouble() beibehalten und die InputMismatchException abfangen, die bei Eingabe eines Buchstaben und nextDouble() geworfen wird.
Hej MoxxiManagarm, könntest du mir schreiben bzw. darstellen, wo genau und wie ich dies realisiere?
 
MoxxiManagarm

MoxxiManagarm

Java:
try {
  double d = in.nextDouble();
} catch (InputMismatchException e) {
  System.out.println("ungültige Eingabe");
}
 
mihe7

mihe7

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

        Scanner scanner = new Scanner(System.in);
        double mwstSatz = 0.19;
        boolean betragAbfragen = true;

        while (betragAbfragen) {
            System.out.println("Bitte einen Betrag zur Berechnung eingeben:");
            String eingabe = scanner.nextLine();
            if ("quit".equalsIgnoreCase(eingabe)) {
                betragAbfragen = false;
            } else {
                try {
                    double nettobetrag = Double.parseDouble(eingabe);
                    System.out.printf("%.2f €\n", nettobetrag * (1 + mwstSatz));
                } catch (NumberFormatException ex) {
                    System.out.println("Nur Zahlen und \"quit\" sind erlaubt.");                }
            }
        }

    }
 
D

datamox

Hallo ihr Beiden, ich wollte mich bei euch bedanken. Der untenstehende Code beinhaltet ebenfalls die Try Catch Methode, welche du @MoxxiManagarm vorgeschlagen hast. Habe den Code von @mihe7 nun implementiert. Vielen Dank nochmals für eure Zeit und Mühe, das weiß ich zu schätzen. Einen angenehmen Tag!
 
Kultmann

Kultmann

Möchte mich auch bedanken, das war genau das was ich gesucht hatte. Hier findet man wirklich schnell Hilfe 👍
 
Thema: 

Konsoleneingabe mit Abbruchbedingung beenden

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben