Guten Abend allerseits!
Also folgende Aufgabe: Ich muss in einer Klasse eine Zufallszahl generieren, in einem vom Benutzer vorher festgelegten Bereich. Danach muss er raten welche Zahl es ist. Ratet er zu hoch soll er darauf hingewiesen werden, dass die Zahl zu gross ist und das entsprechende wenn die Zahl kleiner ist. Nachdem er die Zahl erraten hat, soll er wählen können ob er nochmal spielen will oder das Spiel beenden. Hier mal der Code der Execute Class:
Soweit funktioniert alles. Abgesehen von der letzen Do/While Schleife. Wenn ich Ja oder ja eintippe wird das Programm neu gestartet wie es soll. Doch tippe ich nein/Nein ein, kommt zwar der String "Spiel wird beendet" aber danach werde ich erneut gefragt, ob ich erneut spielen will. Wieso das? Wenn ich Nein/nein eintippe, hat ja die Variable ja1 den Wert 156 bzw.116. Die While Bedingung sollte ja dann die Schleife beenden?
Vielen Dank für jegliche Hilfe!
Grüsse Stibi
Also folgende Aufgabe: Ich muss in einer Klasse eine Zufallszahl generieren, in einem vom Benutzer vorher festgelegten Bereich. Danach muss er raten welche Zahl es ist. Ratet er zu hoch soll er darauf hingewiesen werden, dass die Zahl zu gross ist und das entsprechende wenn die Zahl kleiner ist. Nachdem er die Zahl erraten hat, soll er wählen können ob er nochmal spielen will oder das Spiel beenden. Hier mal der Code der Execute Class:
Java:
import java.lang.Math;
import java.util.Scanner;
public class Execute{
public static void spiel(int von, int bis){
int guess;
int zufall = von + (int) (Math.random()* bis);
int ja1 = 0;
do{
System.out.println("Versuchen Sie die Zahl zu erraten!");
System.out.println("Tippen sie Ihre Vermutung ein: ");
guess = new Scanner(System.in).nextInt();
if(guess == zufall){
System.out.println("Gratulation, Sie haben die Zahl erraten");
}
else{
if(guess > zufall){
System.out.println("Die Zahl ist kleiner");
}
else if(guess < zufall){
System.out.println("Die Zahl ist grösser");
}
}
}
while(zufall != guess);
do{
System.out.println("Wollen Sie erneut spielen?");
System.out.println("Tippen Sie Ja oder Nein ein");
String frage = new Scanner(System.in).next();
ja1 = (int)frage.charAt(0);
if(ja1 == 106 || ja1 == 152){
System.out.println("Spiel wird neu gestartet!");
Main.main(null);
}
else if(ja1 == 110 || ja1 == 116){
System.out.println("Spiel wird beendet");
}
else{
System.out.println("Sie haben weder Nein noch Ja eingegeben. Bitten eingabe wiederholen!");
}
}
while(ja1 != 106 || ja1 != 112 || ja1 != 110 || ja1 != 152);
}
}
Soweit funktioniert alles. Abgesehen von der letzen Do/While Schleife. Wenn ich Ja oder ja eintippe wird das Programm neu gestartet wie es soll. Doch tippe ich nein/Nein ein, kommt zwar der String "Spiel wird beendet" aber danach werde ich erneut gefragt, ob ich erneut spielen will. Wieso das? Wenn ich Nein/nein eintippe, hat ja die Variable ja1 den Wert 156 bzw.116. Die While Bedingung sollte ja dann die Schleife beenden?
Vielen Dank für jegliche Hilfe!
Grüsse Stibi