Zahlen raten

Hi an alle
Ist meine Lösung ok?

public class ZahlenRaten {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Random r = new Random();
		int randomInt = r.nextInt(100) + 1;

		System.out.println(randomInt);

		System.out.println("Geben Sie zufallszahl ein");

		int eingabezahl;

		do {
			eingabezahl = sc.nextInt();
			if (eingabezahl < randomInt) {
				System.out.println("Meine Zahl ist groesser!");
				
			} else if (eingabezahl > randomInt) {
				System.out.println("Meine Zahl ist kleiner!");
			}
		} while (eingabezahl != randomInt);

	}

}

Ich würde die zu erratene Zahl nicht vorher anzeigen :wink:

Ansonsten könntest du folgendes noch verbessern:

  • Anzeigen in welchem Bereich die Zahl liegt, die der User erraten muss.
  • Wenn der User die Zahl erraten hat eine Meldung anzeigen.
  • Ungültige Eingaben behandeln. Gibt man bspw. Buchstaben ein stürzt dein Programm ab.

danke

meinst du erste beide punkt so ?


if (randomInt < 50) {
			System.out.println("geben sie zahl unter 50 ein");

			do {
				//das so wie oben
			} while (eingabezahl != randomInt);

		} else {
			System.out.println("geben sie zahl über 50 ein");

			do {
				//so wie oben
			} while (eingabezahl != randomInt);

                     }

System.out.println("Sie haben die zahl erraten");



Nein, so meine ich das nicht. Eher so:

Scanner sc = new Scanner(System.in);
Random r = new Random();
int randomInt = r.nextInt(100) + 1;

System.out.println("Erraten Sie die Zahl zwischen 1 und 100:");

int eingabezahl = 0;
do {
    try {
        eingabezahl = sc.nextInt();
        if (eingabezahl < randomInt) {
            System.out.println("Meine Zahl ist groesser!");

        } else if (eingabezahl > randomInt) {
            System.out.println("Meine Zahl ist kleiner!");
        }
    } catch (InputMismatchException ime) {
        System.out.println("Ungültige Eingabe, bitte geben Sie eine Zahl ein");
        sc.next();
    }
} while (eingabezahl != randomInt);

System.out.println("Glückwunsch, Sie haben die Zahl erraten!!!");