Java: Inkrementieren einer Variablen innerhalb einer for-Schleife

Ich bin in einer Anfänger-Java-Klasse und für ein Projekt brauche ich, um zu zählen, wie oft eine Bedingung TRUE zurückgibt(correctGuess) oder FALSE(incorrectGuess) mit einer Schleife in einer Schleife. Das problem, dass ich habe ist, dass die Variablen erhöht, die innerhalb der inneren Schleife nicht halten Ihre inkrementierten Wert, wie die Schleife wiederholt. Also die äußere while-Schleife die Bedingung nie false. Ich bin wirklich neu zu Programmieren, und ich kann nicht herausfinden, die Lösung. Vielen Dank im Voraus für Ihre Zeit mit dieser albernen Frage und wenn es Fragen gibt würde ich gerne eine bessere Erklärung. Der code sieht so aus:

    int incorrectGuess = 0;
    int correctGuess = 0;   

    while(incorrectGuess < 6 && correctGuess < WORD_LENGTH) {

        //Gets the users first guess
        System.out.print("Please guess a letter [A-Z]: ");
        letterGuessed = keyboard.nextLine();

        for (int i = 0; i < WORD_LENGTH; i++){
            char value = wordLetterArray[i];
            String letterArray_value = String.valueOf(value);

            if(letterGuessed.equals(letterArray_value)){
                ++correctGuess;
            }

            else
                System.out.println("Bad comparison!");  

            if(i == WORD_LENGTH)
                ++incorrectGuess;   

        }   
    }
  • Nein, diese Werte zu halten. Was sagt Ihnen, dass Sie nicht halten?
  • Das: if(i == WORD_LENGTH) innerhalb einer for-Schleife, mit dieser Bedingung beenden:i < WORD_LENGTH wird nie immer immer (für immer? foreverever? foreverever?) zu true ausgewertet werden.
  • Was genau ist incorrectGuess eigentlich auf die Spur? Beachten Sie, dass seit incorrectGuess erhöht wird innerhalb einer for-Schleife mit der Bedingung i < WORD_LENGTH und auch innerhalb einer if-Anweisung mit der Bedingung i==WORD_LENGTH es kann eigentlich nie erhöht werden, da es unmöglich ist, beide Bedingungen gleichzeitig wahr sein. Vielleicht meintest du i==WORD_LENGTH-1 für die if-Anweisung?
  • Sorry, das Programm ist für ein Spiel der Henker. Eine "falsche Vermutung" ist, wenn der Benutzer ahnt, ein Brief, der nicht Teil des Wortes. Denn es ist ein Spiel der Henker, bekommt man nur 6 falsche Vermutungen (um einen Gehenkten zeichnen Sie zuerst den Kopf(1), Leib(2), Arme(3 und 4), Beine (5 und 6)). Ein richtig denke, dann verfolgt die Anzahl der richtig errät, so dass, wenn der Benutzer richtig erraten alle Buchstaben, das Programm zu beenden, anstatt weiter zu Fragen, für eine andere denke. EDIT: JA, ich meinte ich==WORD_LENGTH-1.
  • Auch diese wenn-Bedingung ist falsch, wenn(letterGuessed.equals(letterArray_value)) letterGuessed ist ein String, letterArray_value ist ein char so werden Sie nie gleich.
  • Hinweis dieses bit: 'char-Wert = wordLetterArray[i]; String letterArray_value = String.valueOf(Wert);' Es wandelt das char-array die Werte in String-Werte
  • wow, meine derp

InformationsquelleAutor neonroses | 2013-11-13
Schreibe einen Kommentar