If-Abfrage läuft nicht richtig



  • Hi!

    Was ist hier falsch? Wenn ich die if-Abfrage so aufbaue, und Wort = Anton ist, überspringt er einfach die else if-Abfrage.

    std::string wort;
    ...
    
    if(wort != "Anton")
    {
        ...
    }   
    
    else if (Wort == "Anton) //Hier springt er gar nicht rein, auch wenn Wort = Anton ist
    {
    
    ...
    
    }
    

    Schreibe ich es andersrum:

    std::string wort;
    ...
    
    if (Wort == "Anton)
    {
    
    ...
    
    }
    else if(wort != "Anton")
    {
        ...
    }
    

    geht er in die if-Abfrage (if (Wort == "Anton)), wenn Wort = Anton ist.

    Was mache ich nur falsch?



  • Ist das Absicht mit den zwei Variablen, einmal mit kleinem und einmal mit großen 'W'?



  • Habe einen Tippfehler bei den gesendeten Snips gemacht, habe im Code überall wort in Kleinbuchstaben! Also daran liegt es nicht!

    Denk' Dir einfach, ich hätte es in meinem Posting alles (korrekterweise) klein geschrieben!



  • und da fehlt noch n " ist es wieder absicht?

    std::string wort("Anton");
    //...
    if (wort == "Anton")
        //...
    else
        //...
    


  • @MAs:
    Hast du getestet, ob der Fehler bei deinem "Snip" überhaupt auftritt?

    Es bringt nichts, wenn du hier Minimalversionen zeigst, die den Fehler nicht reproduzieren.



  • @Shlo:

    und da fehlt noch n " ist es wieder absicht?

    Nein keine Absicht, Tippfehler, jedoch nicht im Code.

    @MFK

    Hast du getestet, ob der Fehler bei deinem "Snip" überhaupt auftritt?

    Ja, jetzt schon. So läuft es egal wie die Reihenfolge ist fehlerfrei!! Nur im meinem richtigen Code befindet es sich in einer while-Schleife, ich gucke nochmal genauer hin, vielleicht finde ich den Fehler doch noch...

    Danke Euch beiden!



  • Lass dir mal die Variable im Debugger ausgeben (notfalls nimm cout)
    und schau nach ob da wirklich der benötigte wert drin ist.

    Devil


Anmelden zum Antworten