Komische If-Abfrage!



  • Hallo,

    Ich hab eine ganz normale erstellt und zwar folgende:

    if((y1 - entry_value <= -1)|| ((y1 - entry_value) > (map_.getHeight()-1)))
     return false;
    

    Und ich will einfach return false zurückliefern, wenn y1-entry_value negativ wird also gleich -1 oder kleiner 0 muss noch akzeptiert werden!
    Das sollte ja so gehen oder?

    mfg



  • jo, müßte gehen.
    welchen typ haben die beteiligten variablen? zufällug unsigned short?



  • nein, sind jeweils int! Dann wirds wohl an etwas anderen liegen!



  • Wenn y1 positiv ist und entry_value auch postiv ist dann funktioniert

    if(y1 - entry_value <= -1)
        return false;
    

    Wenn entry_value aber negativ ist oder y1 und entry_value, musst du bedenken das folgendes passiert:

    #include <iostream>
    
    int main()
    {
        int y1 = 27;
        int entry_value = -29;
    
        if(y1 - entry_value <= -1)
            std::cout << "Ich werde niemals geschrieben, weil das Ergebnis +56 ist!";
    }
    


  • _if schrieb:

    Das sollte ja so gehen oder?

    Was geht denn nicht? Hast du dir die Werte der Variablen angeschaut, bei denen nicht das erwartete Verhalten auftritt?


Anmelden zum Antworten