Java Scanner auf Zahlen/Numerische Zeichen überprüfen

Shakal

Mitglied
Moin moin Java-Forum Team

Ich hänge da an einem Problem. Ich möchte mit dem Scanner Zahlen eingeben und dann überprüfen ob es eine Zahl ist, wenn es eine Zahl ist soll er diese in eine ArrayList schreiben und Erneut Fragen ob man eine Zahl eingeben möchte und diese dann auch wieder in die gleiche ArrayList speichern. Wenn denn eine Nicht-Zahl eingeben wird soll er mit dem Restlichen Programm fortfahren

Java:
public static void main(String[] args) {
		if(Zahl dann Wiederhole) <------
		System.out.print("Geben Sie eine natuerliche Zahl ein: ");
		Zahlen.add( scan.nextInt());
		System.out.println("test" + Zahlen);
	}

das Syso ist blos ein ausgabe Test ob er die Zahlen Speichert das tut er aber wie Frage ich am mit einer Schleife oder so ob es eine Zahl ist .

MfG Shakal
Ps Entschuldigt meine Rechtschreibfehler ich versuch mich zu bessern.
 
Code:
if
ein eine Bedingung wenn -> dann. Wenn du etwas wiederholen willst, dann musst du Schleifen benutzen. In deinem Fall wäre eine while-Schleife am besten geeignet.
 
du kannst die entsprechende exception abfangen, die nextInt wirft, wenn es keine Zahl ist [c]InputMismatchException[/c] und dann darauf reagieren wie du willst
 
Naja, gibt der User ein Buchstaben an, gibt es eine InputMismatchException.

Java:
Scanner sc = new Scanner(System.in);
int zahl = 0;
try{
	zahl = sc.nextInt();
}catch(InputMismatchException e){
	System.out.println("keine zahl");
}

System.out.println(zahl);

Mfg
 
Das mit dem Fehler abfangen brauch mit auch danke schonmal aber ich habt nicht ganz verstanden ich möchte das er Die Zahl in das Array Speichert und dann weider abfragt ob man eine zahl eingeben möchte solange bis man eine nicht Zahl eingibt
 
Sorry für DoppelPost ich find den "bearbeiten Bottum" nicht

Das mit dem Fehler abfangen brauch mit auch danke schonmal aber ihr habt nicht ganz verstanden ich möchte das er Die Zahl in das Array Speichert und dann weider abfragt ob man eine zahl eingeben möchte solange bis man eine nicht Zahl eingibt
 
Und wo ist das Problem selber auf die Idee zu kommen ? 🙂
Einfach eine Schleife mit Abbruchbedingung, und nach Eingabe einer Zahl den User fragen ob er noch eine Zahl eingeben möchte? Wenn nein, dann soll die Schleife beendet werden.
 
Na wie mach ich denn diese Schleife kann ich dieses InputMismatchException auch als
Code:
 if(!InputMismatchException)
benutzen oder wie prüfe ich ob das eine Zahl war?
 
Java:
boolean isExceptionPresent;
do {
    try {
        // ...
        isExceptionPresent = false;
    } catch (...) {
        // ...
        isExceptionPresent = true;
    }
while (isExceptionPresent);
 
Das musst du nicht weiter prüfen, wenn die Exception auftaucht, wird automatisch in den hierfür verantworklichen catch-Block gesprungen, wo due die Fehlerbehandlung machst. Gab es keinen Fehler, wrd dieser Teil nie erreicht.
 
Java:
	public static void main(String[] args) {
		boolean eingabe = true;
		do {
			try {
				System.out.print("Geben Sie eine natuerliche Zahl ein: ");
				Zahlen.add(scan.nextInt());
			} catch (InputMismatchException e) {
				System.out.println("keine zahl");
				System.out.println("test" + Zahlen);
				eingabe = false;
			}
		} while (eingabe);
	}

So hab ich das nun und es Funkltioniert Perfekt wei ich es wollte ^^
 
Es ist die erste Semester Arbeit in Programmieren 2 und da wird nicht verlangt das die Eingabe wiederholt werden soll.

Was überprüfe ich falsch ? Bitte kläre mich auf ?
 
Ah, gerade den Fehler bemerkt, du gehst das etwas anders an als in meinem Kopf 😉 So im Sinn von "lese alle Zahlen ein, bis ein ungültiger Input kommt". Mein Beispiel war bezogen auf "lese etwas ein, bis eine gültige Eingabe gemacht wird".
 

Zurück
Oben