In diesem Codeabschnitt, in Zeile 13, habe ich correctAnswers um 1 inkrementiert. Sobald die if-Anweisung jedoch abgebrochen wurde, ist der Wert nur eins (oder null), wenn der Prozentsatz ausgegeben wird . Kann mir jemand sagen, was mit meinem Code nicht stimmt?Variabler Wert anders außerhalb der if-Anweisung
private static void multiplicationTest(int maxNumber, int minNumber) {
int i = 1;
while(i != 11) {
int firstNumber = (minNumber + (int)(Math.random() * ((maxNumber - minNumber) + 1))), secondNumber = (minNumber + (int)(Math.random() * ((maxNumber - minNumber) + 1)));
int inputAnswer, answer = (firstNumber * secondNumber);
int correctAnswers = 0;
System.out.print("Question " + i + ".)\t" + firstNumber + " * " + secondNumber + " = ");
inputAnswer = input.nextInt();
if(inputAnswer == answer) {
correctAnswers++;
System.out.print("\tcorrect\n");
} else {
System.out.print("\tincorrect --- " + firstNumber + " * " + secondNumber + " = " + answer + "\n");
} if(i == 10) {
System.out.println("\nYou scored " + correctAnswers + " out of 10 - " + (correctAnswers * 10) + "%.");
}
i++;
}
}
* "Sobald die if-Anweisung jedoch gebrochen ist ..." * Was bedeutet das? –
Am Ende gibt es auch ein * sehr * irreführendes Bracing:}} if (i == 10) {'Beginne das' if' in einer eigenen Zeile. –
Sie iterieren 10 mal. Bei jeder Iteration setzen Sie 'correctAnswers = 0'. Wie erwartest du, dass es die Gesamtanzahl über alle 10 Iterationen hinweg speichert, wenn du es immer auf 0 zurückstellst? – Andreas