"bool win() will always evaluate as true"



  • Wie der Threadtitel schon ankündigt, habe ich ein Problem mit einer Funktion.
    Und zwar gibt folgende Funktion immer true aus:

    bool win()
    {
        int test[10] = {};         //array mit zehn elementen, die alle 0 sind
    
        for(int y=0;y!=9;++y)      // Ein anderes array (arr[9][9]) durchgehen             
            for(int x=0;x!=9;++x)  // Das array kann Werte von 0 - 9 beinhalten
                ++test[arr[x][y]]; // Hier wird nun mitgezählt, wie oft
                                   // 0 - 9 in diesem Array vorkommt
        if(test[0]==0)
            if(test[1]==9)
                if(test[2]==9)
                    if(test[3]==9)
                        if(test[4]==9)
                            if(test[5]==9)
                                if(test[6]==9)
                                    if(test[7]==9)
                                        if(test[8]==9)
                                            if(test[9]==9)
                                                return true;
    
        return false;  // die Funktion soll nur DANN true zurück geben,
                       //  wenn 0 garnicht vorkommt und 1 - 9 jeweils 9 mal
    }
    

    Wieso gibt die Funktion immer "true" zurück? Bin ich blind? 😕



  • Ehm, jenachdem welche Werte in arr[9][9] stehen kann test[1] bis test[9] schonmal jeweils den Wert 9 enthalten.
    Und?



  • hat sich erledigt, es lag nicht an der Funktion

    an einer stelle habe ich nicht

    if(win())
    

    sondern

    if(win)
    

    geschrieben

    Ich bin wirklich manchmal blind 😃



  • workspace schrieb:

    hat sich erledigt, es lag nicht an der Funktion

    an einer stelle habe ich nicht

    if(win())
    

    sondern

    if(win)
    

    geschrieben

    Ich bin wirklich manchmal blind 😃

    Hast du schonmal was Schleifen gehört? Weil das sieht ja grauenhaft aus.



  • Firefighter schrieb:

    Hast du schonmal was Schleifen gehört? Weil das sieht ja grauenhaft aus.

    Schau mal eine Zeile über dem Zeugs. Offensichtlich kennt er es.. Was die Frage aufwirft wieso er es da nicht auch so macht.. 🙄

    Vielleicht ein akuter Fall von Copy/Paste-itis. 🙂



  • Haha, stimmt hatte ich komplett übersehen 😃 Aber netter Wortlaut "akuter Fall von Copy/Paste-itis." LOL



  • Abgesehen von Schleifen gibts so einen UND-Operator &&, mit dem man mehrere Bedingungen verknüpfen kann. Für ein anderes Mal... 😉


Anmelden zum Antworten