else if wird nicht ausgeführt



  • kann mir jemand sagen, wieso die die else if teile der schleife ignoriert werden? wenn Socket->ReceiveText() == O wird das richtige ausgeführt. aber wenn Socket->ReceiveText() == 1, wird der code darunter nicht ausgeführt. kann mir jemand helfen???

    if(!AnsiCompareStr(Socket->ReceiveText(), "0"))
        {
            ShellExecute(Handle,"open",Socket->ReceiveText().c_str(),NULL, NULL,0);
        }       
        else if(!AnsiCompareStr(Socket->ReceiveText(), "1"))
        {
          //....
        }
    
        else if(!AnsiCompareStr(Socket->ReceiveText(),"2"))
        {
            //...
        }
    


  • Guck Dir mal den Code genau an, trifft das 1. if nicht zu gehts zum 1. else if und da wird wieder Socket->ReceiveText() aufgerufen ... 🙄



  • Sieh dir nochmal genau an, was AnsiCompareStr wann zurückliefert.

    Dein ganzes Konstrukt ist aber ... ähhh ... suboptimal. 😉
    Warum nicht einfach ein Vergleich if (string != "irgendwas"), warum die wiederholten Aufrufe von ReceiveText, anstatt das einmal einem String zuzuweisen, und letztlich, wenn du tatsächlich nur Zahlen überträgst, warum bastelst du nicht einen schönen switch/case-Block?



  • weil ich anfänger bin, und erst seit ca. 2 monaten programmiere 🙂
    deswegen.
    danke für die schnelle hilfe.


Anmelden zum Antworten