Random Mathe-Quiz-Programm mit Java
Ich versuche zu erstellen, die eine zufällige Mathe-quiz-Programm (zahlen, sollen zwischen 0
und 20
).
Jedoch, wenn die richtige Antwort gegeben wird das Programm nur beendet. Wie kann ich dieses Problem beheben?
import java.util.Scanner;
public class Project03 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter your name:");
String name = keyboard.nextLine();
System.out.print("Welcome " + name + "! Please answer the following questions:");
int randomNumber1 = (int)(20 * Math.random()) + 1;
int randomNumber2 = (int)(20 * Math.random()) + 1;
int randomNumberAdd = randomNumber1 + randomNumber2;
int randomNumberMul = randomNumber1 * randomNumber2;
int randomNumberDiv = randomNumber1 / randomNumber2;
int randomNumberRem = randomNumber1 % randomNumber2;
double correct = 0;
double percentageCorrect = correct * 25;
System.out.print(randomNumber1 + " + " + randomNumber2 + " = ");
int GuessRandomNumberAdd = keyboard.nextInt();
if (GuessRandomNumberAdd == randomNumber1 + randomNumber2) {
System.out.println("Correct!");
correct++;
}
else {
System.out.println("Wrong!");
System.out.println("The correct answer is " + randomNumberAdd);
System.out.print(randomNumber1 + " * " + randomNumber2 + " = ");
int GuessRandomNumberMul = keyboard.nextInt();
if (GuessRandomNumberMul == randomNumber1 * randomNumber2) {
System.out.println("Correct!");
correct++;
}
else{
System.out.println("Wrong!");
System.out.println("The correct answer is " + randomNumberMul);
}
System.out.print(randomNumber1 + " /" + randomNumber2 + " = ");
int GuessRandomNumberDiv = keyboard.nextInt();
if (GuessRandomNumberDiv == randomNumber1 / randomNumber2) {
System.out.println("Correct!");
correct++;
}
else{
System.out.println("Wrong!");
System.out.println("The correct answer is " + randomNumberMul);
System.out.print(randomNumber1 + " % " + randomNumber2 + " = ");
int GuessRandomNumberRem = keyboard.nextInt();
if (GuessRandomNumberRem == randomNumber1 % randomNumber2) {
System.out.println("Correct!");
correct++;
}
else{
System.out.println("Wrong!");
System.out.println("The correct answer is " + randomNumberRem);
System.out.println("You got " + correct + " correct answers.");
System.out.println("That's " + percentageCorrect + "%!");
}
}
}
}
}
- bitte versuchen Sie es Debuggen....
- Möchten Sie die Möglichkeit bieten, die Benutzer spielen eine weitere Runde?
- Sie haben einen einzigen if-block, gefolgt von mehreren anderen Blöcken, die im Einklang stehen. Wenn der erste block ist bestanden, indem er eine korrekte Antwort, wird das Programm beendet, weil es nichts folgt, nicht in ein anderes.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Befestigen Sie es, indem Sie nicht verschachteln Sie Ihre
if
Aussagen, wie Sie tun. Dies ist, was Sie tun:Dies ist, was Sie tun möchten:
Unabhängigen
Wenn Sie möchten, dass zwei zufällige Ganzzahlen, die zwischen
0
und20
, beide inclusive, man sollte es so machen:Natürlich, Sie wahrscheinlich nicht wollen
randomNumber2
zu0
(division durch null Fehler), also vielleicht 1-20 ist besser fürrandomNumber2
:Ich nehme an, Sie wollen das Programm weiter ausgeführt, bis die Benutzer entscheidet, zu existieren.
Naive Ansatz ist, setzen meist alles nach dem "Willkommen" - Zeile in eine while-Schleife, die nur endet, wenn der Benutzer eine Kündigung Wert, wie "exit" oder "e" als Antwort.
Vielen, vielen Dank! Ich habe gerade das problem behoben. Ich entschuldige mich, wenn ich ihn etwas fragte, sehr basic!