evaluieren der benutzereingaben

  • Themenstarter Themenstarter frances
  • Beginndatum Beginndatum
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
 
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.
 
@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")
 
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();
		 }
		
	}
 
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.
 
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");
 
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.

Zurück
Oben