evaluieren der benutzereingaben

Status
Nicht offen für weitere Antworten.
F

frances

Gast
hallo leutz,

kann mir vielleicht jemand weiter helfen, komm irgendwie nicht weiter, sitz an so nem bmi-Rechner. Und bei der frage nach dem geschlecht ob m oder w, würd ich gern eine Exception rein haben das wenn man nicht m oder w eingibt, ein hinweis kommt Falsche eingabe und wiederholt nach dem geschlecht gefragt wird solange bis m oder w eingegeben wird.
Also meine Methode zum einlesen der Persondaten sieht so aus

public static void liesPerson()throws IOException {
System.out.print("Bitte geben sie ihren Namen ein: ");
name = MeineEingabe.erfasseText();

System.out.print(" Bitte geben Sie ihr Geschlecht ein ");
geschlecht = MeineEingabe.erfasseText();

System.out.print(" Bitte geben sie ihre Groesse in cm ein: ");
groesse[1] = MeineEingabe.erfasseInt();

System.out.print(" Bitte geben Sie ihr Gewicht in kg ein: ");
gewicht[1] = MeineEingabe.erfasseDouble();
}

ich hab es schon mit ner try catch schleife versucht aber irgendwie mach ich was falsch
schön abend noch
mit freundlichen grüßen
frances
 

Murray

Top Contributor
1. Solange wir nicht wissen, was "MeineEingabe" ist (eine Klasse mit statischen Methoden? eine Instanz einer uns bisher unbekannten Klasse??), fällt das Verständnis des Codes schwer.
2. Beim Posten von Java-Code solltest Du die Code-Tags verwenden, dann kann man das auch lesen.
 
R

Roar

Gast
@Murray: naja, danke aussagekräftigen methodennamen, fällt das verständnis des codes nicht wirklich schwer ;)

@frances: das was du suchst ist eine do-while-schleife, die sieht ungefähr so aus:

Code:
do {
  gib aus: "bitte geben sie ihr geschlecht ein (m/w):"
   lies string ein
} while(eingelesenerString ist nicht "m" oder "w")
 
F

frances

Gast
hallo leutz,

kann mir vielleicht jemand weiter helfen, komm irgendwie nicht weiter, sitz an so nem bmi-Rechner. Und bei der frage nach dem geschlecht ob m oder w, würd ich gern eine Exception rein haben das wenn man nicht m oder w eingibt, ein hinweis kommt Falsche eingabe und wiederholt nach dem geschlecht gefragt wird solange bis m oder w eingegeben wird.
Also meine Methode zum einlesen der Persondaten sieht so aus

ich hab es schon mit ner try catch schleife versucht aber irgendwie mach ich was falsch
schön abend noch
mit freundlichen grüßen

Code:
public static void liesPerson()throws IOException {
		System.out.print("Bitte geben sie ihren Namen ein: ");
		name = MeineEingabe.erfasseText();
	
		System.out.print(" Bitte geben Sie ihr Geschlecht ein ");
		geschlecht = MeineEingabe.erfasseText();
		
		System.out.print(" Bitte geben sie ihre Groesse in cm ein: ");
		groesse[1] = MeineEingabe.erfasseInt();
		
		System.out.print(" Bitte geben Sie ihr Gewicht in kg ein: ");
		gewicht[1] = MeineEingabe.erfasseDouble();
}



public class MeineEingabe {

	private static BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
	
	public static String erfasseText() throws IOException
	{
		return eingabe.readLine();
	}
	
	public static int erfasseInt() throws IOException
	{
		try
		{
			return Integer.parseInt(erfasseText());
		}catch (Exception e)
		 {
		 	System.out.print(" Falsche Eingabe. ");
		 	System.out.print(" Bitte geben Sie ihre Groesse in cm ein: ");
	 		return erfasseInt();
		 }
		
	}
 

Murray

Top Contributor
Roar hat gesagt.:
@Murray: naja, danke aussagekräftigen methodennamen, fällt das verständnis des codes nicht wirklich schwer ;)
Ich hätte aber halt doch gern gewusst, ob es in diesen Methoden bereits eine Fehlerbehandlung gibt oder nicht.
 
F

frances

Gast
hi roar danke, sowas hab ich gesucht ;-)
i hab jetzt die do while schleife eingebaut aber irgendwie endet das in ner endlosschleife. es kommt immer die ausgabe bitte geben sie ihr geschlecht ein, auch wenn ich w oder m eingibt

Code:
do{
	System.out.print(" Bitte geben Sie ihr Geschlecht ein ");
	geschlecht = MeineEingabe.erfasseText();
	}while (geschlecht != "w" || geschlecht != "m");
 

Murray

Top Contributor
String-Vergleiche funktionieren i.A. nicht mit ==; verwende lieber equals:
Code:
do{
   System.out.print(" Bitte geben Sie ihr Geschlecht ein ");
   geschlecht = MeineEingabe.erfasseText();
   }while ( ! (geschlecht.equals( "w") || geschlecht.equals( "m")));
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen


Oben