Hallo,
ich, als Anfänger, habe mir ein kleines Zahlen-raten-Spiel programmiert.
Als erstes soll der Spieler 1 seine Zahl eingeben zwischen 1 und 100 (Keine Zufall).
Dann soll geprüft werden, ob eine Zahl zwischen 1 und 100 eingegeben wurde. <-- Das klappt nicht: Wenn ich erst unter 1, dann über 100 und dann unter 1, geht es nicht mehr.
Dann ratet Spieler 2 die Zahl. Ratet er zu hoch, kommt die Meldung "Zu hoch". Ratet er zu klein, kommt die Meldung "Zu klein".
Der Code:
Gibt es auch eine Möglichtkeit, es ohne eine do-while-Schleife, sondern nur mit einer while-Schleife zu programmieren. Wenn ja wie?
ich, als Anfänger, habe mir ein kleines Zahlen-raten-Spiel programmiert.
Als erstes soll der Spieler 1 seine Zahl eingeben zwischen 1 und 100 (Keine Zufall).
Dann soll geprüft werden, ob eine Zahl zwischen 1 und 100 eingegeben wurde. <-- Das klappt nicht: Wenn ich erst unter 1, dann über 100 und dann unter 1, geht es nicht mehr.
Dann ratet Spieler 2 die Zahl. Ratet er zu hoch, kommt die Meldung "Zu hoch". Ratet er zu klein, kommt die Meldung "Zu klein".
Der Code:
Java:
import java.util.Scanner;
public class Zahlenraten {
public static void main(String[] args) {
// Person 1 gibt eine Zahl ein
System.out.println("Person 1: Geben Sie eine Zahl zwischen 1 und 100 ein!");
Scanner s1 = new Scanner(System.in);
int zahl = s1.nextInt();
// Überprüfung ob Zahl zwischen 1 und 100 ist
int kleinsteZahl = 1;
int groessteZahl = 100;
do {
if (zahl < kleinsteZahl) {
System.out.println("Die Zahl muss höher sein!");
Scanner s7 = new Scanner(System.in);
zahl = s7.nextInt();
} // end of if
if (zahl > groessteZahl) {
System.out.println("Die Zahl muss niedriger sein!");
Scanner s2 = new Scanner(System.in);
zahl = s2.nextInt();
} // end of if
} while ((zahl < kleinsteZahl)&&(zahl > groessteZahl)); // end of do-while
// Anzeige welche Zahl eingegeben wurde
System.out.println("Sie haben die Zahl " + zahl + " eingegeben.");
// Person 2 ratet eine Zahl
System.out.println("Person 2: Raten Sie, welche Zahl Person 1 eingegeben hat!");
Scanner s3 = new Scanner(System.in);
int gerateneZahl = s3.nextInt();
do {
if (gerateneZahl < zahl) {
System.out.println("Zu klein!");
Scanner s4 = new Scanner(System.in);
gerateneZahl = s4.nextInt();
} // end of if
else if (gerateneZahl > zahl) {
System.out.println("Zu groß!");
Scanner s5 = new Scanner(System.in);
gerateneZahl = s5.nextInt();
} // end of if-else
} while (gerateneZahl != zahl); // end of do-while
// Wenn Person 2 richtig ratet
System.out.println("Richtig! Das Spiel ist zu Ende!");
} // end of main
} // end of class Zahlenraten
Gibt es auch eine Möglichtkeit, es ohne eine do-while-Schleife, sondern nur mit einer while-Schleife zu programmieren. Wenn ja wie?
Zuletzt bearbeitet von einem Moderator: