Frage von MySingingMonst, 33

Wie kann ich bei Java eclipse pro runde auf oder abzählen?

Ich habe ein Programm geschrieben bei dem man eine Zahl von 1 -3 eingeben muss und Java generiert eine zufällige Zahl von 1-3.Wenn deine Zahl und die zufällige von Java übereinstimmen soll der Integer score um eins steigen und wenn die zahlen nicht übereinstimmen um eins abnehmen.ich habe schon alles ausprobiert aber mit if(...){ score++;} wird der score bei der nächsten Eingabe wieder auf null zurückgesetzt! Also z.b ich habe die Zahl richtig dann steigt der score von 0 auf 1! Habe ich es beim nächsten mal wieder richtig sollte er ja dann auf 2 steigen !Das tut er aber nicht,sondern er ist wieder auf 1.Wie ist der Code damit der score für die nächste Runde, der alte score, plus bzw. minus 1 ist? Danke im voraus!

Antwort
von Belaro, 33

Ich sehe schon dein Fehler. 

Irgendwo setzt du sicher dem score dem Wert 0. Dieser score befindet sich aber irgendwo in einer Schleife, der regelmässig ausgeführt wird. In deinem Fall ist es sicher die Schleife, wo zu eine zufällig generierte Zahl erstellst. Setze dem score den Wert 0 vor der Schleife, damit sie nur einmal gesetzt wird und auch nicht überschrieben wird. 

Schick uns doch einmal einen Codestück vom Programm, wo du den Wert von score setzt und dort, wo du den score addierst bzw. subtrahierst

Antwort
von xxxcyberxxx, 23
import java.util.Random;
import java.util.Scanner;

public class Random{
public static void main(String[] args) {

int score = 0;
Scanner scanner = new Scanner(System.in);
Random r = new Random();

while (true) {
int a = scanner.nextInt();
if (a < 4 && a > 0) {
int number = r.nextInt(3)+1;
if (a == number) {
score++;
System.out.println("Stimmt - Random Nummer ist: " + number + " - Score ist: " + score);
} else {
if (score > 0){
score--;
}
System.out.println("Stimmt nicht - Random Nummer ist: " + number + " - Score ist: " + score);
}
} else {
System.out.println("Bitte nur Zahlen zwischen 1 und 3 eingeben");
}
}
}
}
Kommentar von xxxcyberxxx ,

Dein Fehler könnt daher kommen, dass du int score IN der Schleife = 0 setzt, deshalb wird es immer zurückgesetzt. du musst score außerhalb der Schleife festlegen

Kommentar von MySingingMonst ,

Danke vielmals!Es hat einwandfrei geklappt !Jetzt kann ich endlich weitermachen!Danke

Kommentar von xxxcyberxxx ,

Bitte bitte, kein Problem

btw hier sollte man auch noch einbauen, dass man das Spiel beenden kann und mögliche Exceptions abfangen. Habs nur kurz hingeschrieben ^^

Keine passende Antwort gefunden?

Fragen Sie die Community