import java.util.Random;
import java.util.Scanner;
import java.util.InputMismatchException;
public class GuessingGame {
public static void main(String[]args) throws BadGuessException
{
int min = 1;
int max = 10;
Random rand = new Random();
int numberToGuess = rand.nextInt((max - min) + 1) + min;
Scanner input = new Scanner(System.in);
int guess;
boolean win = false;
int numberOfTries = 0;
while (!win)
{
System.out.println("Guess a number between 1 and 10: ");
try
{
guess = input.nextInt();
numberOfTries++;
win=true;
if (guess == numberToGuess)
{
win = true;
System.out.println("YOU GOT IT!");
System.out.println("It took you " + numberOfTries + " tires.");
}
else
{
throw new BadGuessException();
}
}
catch(InputMismatchException e)
{
System.out.println("Please input a number betwee 1 and 10!");
}
catch(BadGuessException ex) {
System.out.println("Sorry, you guessed the wrong number!");
}
}
}
}
class BadGuessException extends Exception {
private static final String message = "Sorry, that was an invalid guess!";
public BadGuessException() {
super(message);
}
}
Hier ist die Aufforderung: eine Ausnahmeklasse erstellen BadGuessException genanntJava guessingGame Fehler
BadGuessException eine Unterklasse der Ausnahmeklasse sein sollte [1 Punkt] 2 Konstrukteure erstellen [1 Punkt] A Standardkonstruktor in der BadGuessException-Klasse, die die Nachricht "Entschuldigung, das war eine ungültige Schätzung!" an den übergeordneten Konstruktor mit dem Schlüsselwort super. Ein parametrisierter Konstruktor in der BadGuessException-Klasse, der den Parameter mithilfe des Schlüsselworts super an den übergeordneten Konstruktor übergibt. Erstellen Sie eine Klasse namens GuessingGame
Generieren Sie eine zufällige Zahl zwischen 1 und 10. Fordern Sie den Benutzer auf, die Nummer zu erraten. Ermöglichen Sie dem Benutzer unbegrenzte Versuche, die Nummer richtig zu erraten. [1 Punkt] Sobald der Nutzer die Nummer richtig geschätzt hat, drucken Sie "YOUR GOT IT!" und auszudrucken, wie viele Versuche der Benutzer benötigt hat, um die Nummer zu erraten. [1 Punkt] Verwenden Sie einen try-catch-Block, und fügen Sie Ihrem Code eine Ausnahmebehandlung hinzu. try-catch-Block korrekte Syntax [1 Punkt] Eine BadGuessException auslösen, wenn der Benutzer eine Zahl zwischen 1 und 10 eingibt. [1 Punkt] Fügen Sie einen weiteren catch-Block hinzu, um die Ausnahme auszulösen, wenn der Benutzer ein falsches Format eingibt für die Zahl raten sie, wie "fünf" oder "5.0". Dies sollte verhindern, dass Ihr Programm abstürzt oder eine Laufzeit Exception wirft. Wenn diese Ausnahme abgefangen wird, sollte das Programm nicht abstürzen und sollte "Sorry, Sie haben ein ungültiges Zahlenformat eingegeben" anzeigen. [1 Punkt]
Jetzt habe ich den Code ausgeführt, aber es läuft eine Schleife im Compiler wenn.
Bitte versuchen Sie, zuerst den Debugger zu verwenden, und wenn Sie Ihre Post mit einer gründlicheren Beschreibung, wo und wie das Problem auftritt aktualisieren können, das würde helfen. –
Der Fehler, den ich mit dem Code habe, ist für diesen Abschnitt: Fügen Sie einen weiteren catch-Block hinzu, um die ausgelöste Ausnahme abzufangen, wenn der Benutzer ein falsches Format für die vermutete Zahl eingibt, wie "five" oder "5.0". Dies sollte verhindern, dass Ihr Programm abstürzt oder eine Laufzeit Exception wirft. Wenn diese Ausnahme abgefangen wird, sollte das Programm nicht abstürzen und "Sorry, Sie haben ein ungültiges Zahlenformat eingegeben" anzeigen. – jaegers1234
Und immer, wenn ich eine ungültige Antwort eintrage oder eingib, läuft der Code weiter: Errate eine Zahl zwischen 1 und 10: Bitte geben Sie eine Zahl zwischen 1 und 10 ein! – jaegers1234