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:
publicstaticvoidmain(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.
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 =newScanner(System.in);int zahl =0;try{
zahl = sc.nextInt();}catch(InputMismatchException e){System.out.println("keine zahl");}System.out.println(zahl);
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.
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.
publicstaticvoidmain(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 ^^
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".