If Bedingung ist true(fehler)



  • Ein Plus zeichen sollte Hello World liefern aber anscheinend nicht.
    Warum wird die If-Bedingung erfüllt?

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
        char  strg[]=  "+" ;
    
        if(strg[0]==('q') || ('x'))
        {
            cout<<strg[0]<<endl;
            return 0;
        }
    
        else cout << "Hello world!" << endl;
    
        return 0;
    }
    


  • Der oder operator verknüpft zwei Ausdrücke und dein zweiter Ausdruck ist 'x' und ist immer true .



  • Was du schreibst bedeutet

    if(strg[0]==('q') || true )
    

    was

    if(true)
    

    bedeutet.

    Du musst den Vergleich komplett ausschreiben:

    if(strg[0]=='q' || strg[0]=='x')
    

    Ein anständiges Lehrbuch sollte das eigentlich zeigen.



  • HansSchneider schrieb:

    Warum wird die If-Bedingung erfüllt?

    Ohne Worte, einfach nur ohne Worte...



  • sam_the_man schrieb:

    HansSchneider schrieb:

    Warum wird die If-Bedingung erfüllt?

    Ohne Worte, einfach nur ohne Worte...

    Typischerweise kann man einen Sachverhalt mit Worten besser erklären.


Log in to reply