Eingabeüberwachung

Me.Name

Mitglied
Hello an alle,

Ich bin wieder mal so ein Neuling auf dem Gebiet Java und habe folgendes Problem:

Ich möchte von einer Kosolenanwendung einen Wert einlesen, wird keine Zahl eingegeben soll die Abfrage erneut stattfinden, solange bis tatsächlich eine Zahl eingegeben wird.

Hab schon einiges Probiert aber entweder kann ich die Schleifen nur unterbrechen wenn es keine Zahl ist oder ich schlittere ständig in eine Endlosschleife.;(

Ich verwende den JEditor falls das eine Rolle spilen sollte.

Hier mein Lösungsansatz

Java:
import java.util.*;

class MyProgRunde1{
	public static void main (String [] args ){

            boolean Exit = false;
            Scanner in = new Scanner(System.in);

             do{
	          System.out.print("Zahl eingeben: ");
	          if(in.hasNextInt()){
		      Exit = true;          //Dient nur zu Kontrolle
	          }
	          System.out.println("\nExit = " + Exit);
             }while(in.hasNextInt() == false);
     }
}


Habs auch schon mit "while(!in.hasNextInt() == false);" und "while(in.hasNextInt());".
Das ganze hab ich auch schon durchgespielt ohne do-while nur mit wile selbes Ergebnis.
Wollte auch schon mal die Variable "Exit" abfragen selbes Ergebnis.

schon mal danke vorab
 
S

SlaterB

Gast
wenn ein String den Scanner verstopft wird hasNextInt() bis in alle Ewigkeit false liefern, egal was danach kommt,
erst muss der String am Anfang entfernt werden,
z.B. mit nextLine() die komplette letzte Eingabe (eine Zeile bis zum Enter) herauslesen
 

Me.Name

Mitglied
wow das ging ja schnell, danke.

verstehe ich aber leider nicht wie ich jetzt die letzte Eingabe in meiner Schleife auslesen kann, damit das nicht passiert.
 
S

SlaterB

Gast
if(in.hasNextInt()){
Exit = true; //Dient nur zu Kontrolle
} else if (in.hasNext()) {
in.nextLine();
}
 

Neue Themen


Oben