Korrektur für Zahleingabe

hans-sonny

Bekanntes Mitglied
hi leute,

ich hab ne frage und zwar habe ich ein kleines programm bei dem man zahlen eingeben muss (typ integer) nun möchte ich dass wenn z.B. ein buchstabe eingegeben wird eine fehlermeldung kommt, dass eine zahl eingegeben werden muss und dass man dann die chance hat eine zahl einzugeben.

das programm soll nicht abstürzen

hat mir jemand eine idee
 
Zuletzt bearbeitet von einem Moderator:
Musst die Eingabe in einer Schleife machen umd beim parsen (falls es z.B. mit Integer.parse gemacht ist) die NumberFormatException abfangen
 
also das ganze in ne if anweisung

if
eingabe != int
ausgabe fehlermeldung
else
neue eingabe

mal im pseudo code und wenn du die zahlen natürlich sehen willst noch die ausgabe

edit: erzähl ich grade mist?? aber die exeption is ja auch ein int wert oder?? den man dan vergleichen kann??:rtfm:
 
hi leute,

ich hab ne frage und zwar habe ich ein kleines programm bei dem man zahlen eingeben muss (typ integer) nun möchte ich dass wenn z.B. ein buchstabe eingegeben wird eine fehlermeldung kommt, dass eine zahl eingegeben werden muss und dass man dann die chance hat eine zahl einzugeben.

das programm soll nicht abstürzen

hat mir jemand eine idee

Du könntest auch einen String einlesen und prüfen ob die eingegebenen Charakter im Bereich von '0' .. '9' sind. Vielleicht solltest du noch '-' / '+' an erster Stelle akzeptieren ...
 
@mariusbopp, und was ist, wenn man 2 mal die falsche Zahl eingibt? 🙂
Und Exception ist kein int Wert und hat auch nichts damit zu tun.
 
Java:
    private static final Scanner EINGABE = new Scanner(System.in);

    public static void main (final String [] args){

        int n;

        System.out.println("\n--> Geben Sie die Anzahl der zu sortierenden Zahlen ein: ");
            n = EINGABE.nextInt();


das ist mein code

danach kommen weitere eingaben

wie müsste ich es machen habe es nicht ganz verstanden
 
😳
ja keine ahnung wie ich drauf komme das exceptions int werte sein könnten -.-
vill liegt es daran das ich selbst erst anfange mit java...

@ hans ja so hast du dann den wert für die abbruch bedingung der schleife...
 
okay hab mal bisschen nachgelesen:

Java:
try {
Integer.parseInt("12a3");
} catch (NumberFormatException ex) {
System.out.println("falsche eingabe");
}

edit: da war jemand schneller wie ich^^
 
Noch eine Alternative:
Java:
		if (EINGABE.hasNextInt()) {
			n = EINGABE.nextInt();
		} else {
			System.err.println(EINGABE.next() + " ist keine Zahl!");
		}

finde ich persönlich schöner als das Fangen der RuntimeException
 

Zurück
Oben