War kein Semikolon in if (! (c=b;)) { }



  • Warum kommt in die Klammer nach dem Zuweisungsbefehl kein Semikolon?

    int c=0,b=2;
    
      if (! (c=b))
    
      {
    
      }
    

    Wenn ich c=b außerhalb der IF Anweisung anwende, dann brauche ich ja auch ein Semikolon:

    c = b;
    

    Warum geht also

    if (! ( c=b;) )
    {
    }
    

    nicht?

    Warum spuckt hier der Compiler einen Fehler aus?
    Die Anwendung des Semikolons ist hier doch inkonsequent.



  • Semikolon schrieb:

    Wenn ich c=b außerhalb der IF Anweisung anwende, dann brauche ich ja auch ein Semikolon:

    c = b;
    

    Ja, aber auch da gehört es nicht in die Klammer, sondern ans Ende des Befehls.

    (c=b);
    

Anmelden zum Antworten