Fehlerhafte Berechnung beim erneuten Durchlaufen der Schleife

Bugs Bunny

Neues Mitglied
Hallo zusammen,
ich bin gerade dabei ein Programm zuschreiben mit dem der Gewinn einer Pokerpartie berechnet werden soll. Im folgenden Teil habe ich eine while Schleife eingebaut, die Prüfen soll, ob sich die Spieler beim Zählen der Chips verzählt haben. Dabei tritt folgendes Problem auf: wenn die Anzahl der Chips stimmt ist alles ok, stimmt sie jedoch nicht wird das falsche Ergebnis auch beim nächsten durchlauf der Schleife ausgegeben, unabhängig davon ob das Ergebnis diesmal richtig ist.

Java:
int chipsTotal = 2000;

boolean valid = false;

while(valid == false){

    //Abfrage Anzahl Chips Gewinner

    for (int i = 0; i < anzWin; i++) {

        System.out.println("Wie viel hat " + name.get(i) + " gewonnen?");

        Scanner input2 = new Scanner(System.in);

        int winSum = input2.nextInt();

        gewinn.add(winSum);

    }

    /*nach meinem Verständnis sollte folgende Anweisung bei jedem Durchlauf die Berechnung
    auf 0 setzen*/
    int gewinnTotal = 0;


    for (int i = 0; i < anzWin; i++) {

        gewinnTotal += gewinn.get(i);

    }

    System.out.println(gewinnTotal);

    if (gewinnTotal != chipsTotal) {

        valid = false;

        System.out.println("Ihr muesst euch verzaehlt haben. Bitte erneut eingeben.");

    }

    else{

       valid = true;

    }
 

KonradN

Super-Moderator
Mitarbeiter
Was ist denn Deine Variable gewinn?

Du fügst zu gewinn ja immer mit .add etwas hinzu, aber du löscht nie etwas. Evtl. fehlt vor der Schleife etwas wie gewinn.clear() um, da alle Einträge zu löschen?
 

Bugs Bunny

Neues Mitglied
Um die Namen der Spieler und ihre Gewinne festzuhalten habe ich ArryLists verwendet. gewinn ist eine dieser ArrayLists. Vorausgegangen im Code habe ich eine Abfrage der Namen eingebaut um diesen ihre Gewinne zuordnen zu können. Die Eingaben aus Gewinn brauche ich für spätere Berechnungen.
 

KonradN

Super-Moderator
Mitarbeiter
Aber du fügst nur hinzu! Also angenommen beim ersten Durchlauf gibst du ein (gewinn ist leer):
1333
333
333
Das wird dann in der schleife addiert: 1999 - und das ist nicht 2000. Also geht es in der äußeren While Scheife noch eine Runde:
Jetzt gibst Du wieder 3 Werte ein - diese kommen aber hinzu ... Also du gibst ein: 1333, 334, 333 (Summe wäre 2000), aber nun hast Du in gewinn:
1333
333
333
1333
334
333
==> Summe ist 3999 - also wieder nicht 2000.
 

KonradN

Super-Moderator
Mitarbeiter
Oh, ich sehe gerade: Du summierst ja nicht über das ganze Array ... Du summierst immer nur die ersten 3 Werte ... gewinn enthält also (mit Index):
0: 1333
1: 333
2: 333
3: 133
4: 334
5: 333
Summiert wird nun 0-2, also Summe ist 1999 und damit wird es nie auf 2000 kommen, egal was Du weiter eingibst.
 

KonradN

Super-Moderator
Mitarbeiter
Mal ein paar allgemeine Hinweise:

a) Pack Daten, die zusammen gehören, auch wirklich zusammen. Also Name und gewonnene Chips gehören zusammen und zwar gehören diese zum Spieler. Also mach eine Klasse Spieler mit den Instanzvariablen name und geonneneChips oder so.

b) Beim Durchlaufen von Listen oder Arrays solltest Du die Grenzen des Arrays verwenden. Also nicht, was in irgend einer Variable gespeichert wurde, als Grenze verwenden. Also statt:
Java:
    for (int i = 0; i < anzWin; i++) {
        gewinnTotal += gewinn.get(i);
    }
lieber ein
Code:
    for (int i = 0; i < gewinn.size(); i++) {
        gewinnTotal += gewinn.get(i);
    }
oder noch besser: Eine foreach Schleife verwenden um mit allen Elementen etwas zu machen oder eben Streams nutzen.

Beides zusammen würde dann auch solche Probleme verhindern. Dann würdest Du halt in der Schleife über alle Spieler immer im Spieler den Wert für gewonneneChips ändern. Damit kann es nicht zu dieser magischen "Vermehrung" von Werten kommen. und man hat auch deutlich mehr, in sich relativ abgeschlossene Dinge, die man gut testen kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Fehlerhafte Ausgabe "null" Java Basics - Anfänger-Themen 2
V Fehlerhafte BufferedReader/switch Benutzung? Java Basics - Anfänger-Themen 2
B Fehlerhafte XML-Files verschieben Java Basics - Anfänger-Themen 6
B Fehlerhafte Schleife? Java Basics - Anfänger-Themen 5
M Fehlerhafte Ausgabe Java Basics - Anfänger-Themen 5
lulas[]args Fehlerhafte Switch Java Basics - Anfänger-Themen 6
N HashMap fehlerhafte Rückgabe Java Basics - Anfänger-Themen 7
C JGoodies fehlerhafte jTextFelder markieren Java Basics - Anfänger-Themen 11
N Fehlerhafte Eingabe holen Java Basics - Anfänger-Themen 19
G Fehlerhafte Eingabeproblem Java Basics - Anfänger-Themen 7
V Beim lesen aus einer Datei bekomme ich fehlerhafte Strings. Java Basics - Anfänger-Themen 2
L Fehlerhafte Kollissionserkennung Java Basics - Anfänger-Themen 2
I File Uploader... Statusanzeige, Berechnung des Status etc. Java Basics - Anfänger-Themen 0
Jamie logische Verknüpfung zur Schaltjahr-Berechnung Java Basics - Anfänger-Themen 30
Stephan_kl Reihenwert-Berechnung, Ergebnis mit vorherigem Ergebnis vergleichen Java Basics - Anfänger-Themen 11
Abraham42 Berechnung der Kühlung Java Java Basics - Anfänger-Themen 12
S Hashcode-Berechnung + ^ Java Basics - Anfänger-Themen 2
J Median-Berechnung von 2D-Teilarrays Java Basics - Anfänger-Themen 56
F Tabelle - Berechnung Rang Java Basics - Anfänger-Themen 2
B Berechnung der Position von Kinderelemente von einem Elternknoten Java Basics - Anfänger-Themen 23
S Berechnung der sleep time ist falsch Java Basics - Anfänger-Themen 46
S Switch-Case zur Berechnung der Einkommensteuer Java Basics - Anfänger-Themen 15
F Berechnung der Rektaszension und Deklination eines Sterns Java Basics - Anfänger-Themen 7
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
V Erste Schritte Pi Berechnung Java Basics - Anfänger-Themen 47
M Berechnung der Reststrecke bei Graphen Java Basics - Anfänger-Themen 1
V Algorithmus zur fortlaufenden Berechnung des duechscjnt Java Basics - Anfänger-Themen 1
B Berechnung zu einer Schleife formen Java Basics - Anfänger-Themen 6
B Berechnung Median mit Methode Java Basics - Anfänger-Themen 7
CptK Methoden Berechnung von Anfangsgeschwindigkeit und Winkel Java Basics - Anfänger-Themen 27
K Erste Schritte Berechnung der Summe zweier Arrays Java Basics - Anfänger-Themen 15
S Erste Schritte Berechnung des Paketportos - Problem/Frage Java Basics - Anfänger-Themen 52
J Gleitkommazahlen, Berechnung von pi Java Basics - Anfänger-Themen 4
J Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
kilopack15 Verzweiflung wegen Berechnung mit Multithreading Java Basics - Anfänger-Themen 1
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
Salo Berechnung von Winkeln Java Basics - Anfänger-Themen 28
M Restbuchwert Berechnung geht nicht Java Basics - Anfänger-Themen 45
Ghostman1711 Pi berechnung Methode aufrufen Java Basics - Anfänger-Themen 2
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
beatles Operatoren Operatoren - Berechnung Java Basics - Anfänger-Themen 40
K Best Practice Algorithmus für Berechnung von Zahlenreihenfolge Java Basics - Anfänger-Themen 12
N Verzögerte Berechnung "Lazy" Java Basics - Anfänger-Themen 8
J Erste Schritte Rundungsproblem - Berechnung Notendurchschnitt Java Basics - Anfänger-Themen 13
S Variablen Vektor zur Berechnung verwenden Java Basics - Anfänger-Themen 4
T Java double berechnung fehler Java Basics - Anfänger-Themen 2
M Berechnung in Java Java Basics - Anfänger-Themen 4
S Berechnung der Arbeitstage in einem Zeitraum Java Basics - Anfänger-Themen 9
E Problem bei rekursiver Berechnung des Binomialkoeffizienten Java Basics - Anfänger-Themen 5
T Iterative Pi Berechnung in Rekursive Java Basics - Anfänger-Themen 2
S Double, int, Berechnung Java Basics - Anfänger-Themen 3
C Nach Berechnung runden und Wert ausgeben Java Basics - Anfänger-Themen 7
E Berechnung für Shop einbinden Java Basics - Anfänger-Themen 8
S Klassen Formel zur Berechnung .... Bitte um Hilfe Java Basics - Anfänger-Themen 7
S Euklid Algorithmus zur Berechnung des GGTs Java Basics - Anfänger-Themen 2
OnDemand Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
P Schleife zur Berechnung von einer Summe Java Basics - Anfänger-Themen 16
F Berechnung einer linearen Abschreibung Java Basics - Anfänger-Themen 5
E Berechnung von Punkten Java Basics - Anfänger-Themen 4
D Berechnung des Abstandes von zwei Punkten in einem Koordinatensystem Java Basics - Anfänger-Themen 14
A Methoden PI-Berechnung Java Basics - Anfänger-Themen 22
S Erste Schritte Berechnung mit Daten aus CSV und Date Objekt Java Basics - Anfänger-Themen 2
C Programm zur Berechnung der Spur einer Matrix Java Basics - Anfänger-Themen 4
P Pythagoras Baum - Berechnung der Punkte Java Basics - Anfänger-Themen 9
A Erste Schritte Steuer Berechnung, Alters Abhängig Java Basics - Anfänger-Themen 5
T Erste Schritte Berechnung von gerade und ungerade Zahlen Java Basics - Anfänger-Themen 10
J Erste Schritte Berechnung Ratten vermehrung Java Basics - Anfänger-Themen 4
P falsches ergebnis bei einfacher berechnung Java Basics - Anfänger-Themen 3
T Iterative Berechnung einer Satellitenbahn Java Basics - Anfänger-Themen 20
M Java Berechnung mit mehreren Lösungen? Java Basics - Anfänger-Themen 9
D Nullstellen-Berechnung Java Basics - Anfänger-Themen 10
L Fehlermeldung bei falscher Berechnung anzeigen Java Basics - Anfänger-Themen 31
A berechnung multiplikatives inverses Java Basics - Anfänger-Themen 5
J Berechnung des aktuellen Alters auf Basis des Geburtstags Java Basics - Anfänger-Themen 45
J Datentypen Fehler bei Berechnung mit Double und Int-Werten Java Basics - Anfänger-Themen 22
G Berechnung von Winkeln mit Cosinussatz Java Basics - Anfänger-Themen 2
B Arrays verwenden für Berechnung Java Basics - Anfänger-Themen 3
R Merkwürdige Modulo Berechnung Java Basics - Anfänger-Themen 7
B Hausaufgabe Berechnung quadratischer Funktion Java Basics - Anfänger-Themen 16
U Alter Berechnung + sortierung Java Basics - Anfänger-Themen 6
P Berechnung wird nicht durchgeführt Java Basics - Anfänger-Themen 2
D Berechnung von Ostern und Ramadan! Java Basics - Anfänger-Themen 24
N Algorithmus für Berechnung einer Quersumme Java Basics - Anfänger-Themen 9
D Berechnung von Geldausgabe Java Basics - Anfänger-Themen 22
F Berechnung von Kugeln! Java Basics - Anfänger-Themen 9
M rekursive Funktion zur Berechnung der Spiegelzahl Java Basics - Anfänger-Themen 7
S Hausaufgabe: Java-Programm schreiben zur Berechnung von x und y Java Basics - Anfänger-Themen 9
Y Ergebnis einer Berechnung an die Main Methode übergeben Java Basics - Anfänger-Themen 11
Semox Ersten Wert eines Intervalls bei Berechnung einschließen Java Basics - Anfänger-Themen 8
J Logarithmische Berechnung und Arrays Java Basics - Anfänger-Themen 2
B LinkedList - Berechnung des Produkts Java Basics - Anfänger-Themen 6
B Berechnung von Preisen per Java-Programm Java Basics - Anfänger-Themen 27
M Alters berechnung aus Geburtsjahr aus dem Buch Java Basics - Anfänger-Themen 5
O Fehler in der String-Distanz-Berechnung Java Basics - Anfänger-Themen 5
-horn- "Berechnung vorwärts, Optimierung rückwärts?" - Wie würdet ihr das machen? Java Basics - Anfänger-Themen 8
P iterative Berechnung Java Basics - Anfänger-Themen 9
1 Berechnung von PI mithilfe von Buffons Nadelproblem Java Basics - Anfänger-Themen 2
G Berechnung zwei Komplexen Zahlen Java Basics - Anfänger-Themen 34
N Rekursive Berechnung der Höhe eines binären Baumes Java Basics - Anfänger-Themen 4
J Programm für interaktive Berechnung von Temperaturverläufen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben