Forum: PC-Programmierung Auswertung die IF-Bedingungen


von Alex (Gast)


Lesenswert?

Hallo Experten,

eine Frage bezüglich zwei Bedingungen in If-Operator.

Beispiel:

if(a==(b&0x01) && d!=c)
{}

Soll man die Teile, die mit dem UND'&&' getrennt sind. mit dem 
Klammern() umschlagen oder so eine Schreibweise schon richtig ist.

if((a==(b&0x01)) && (d!=c))

Mein Problem ist, dass der Compiler mit den Warnungen meckert.

Binary operator other than + - * / % used with binary operator of 
different precedence. Extra parentheses recommended.

Binary/ternary operator used with && or ||. Extra parentheses 
recommended.


mfg. Alex

von Curby23523 N. (Gast)


Lesenswert?

Eigentlich sollte reichen:
1
if(a == (b&1) && d != c){
2
}

von c.m. (Gast)


Lesenswert?

der compiler wird wohl merken das du zwei vergleiche mit AND verknüpfst, 
aber er warnt dich das man um die einzelnen boolschen ausdrücke besser 
klammern machen sollte.
ich würde sie machen, andere würden so wenig hinschreiben wie möglich. 
geschmackssache.

ich würde wahrscheinlich auch selbstsprechende variablennamen nehmen, 
nicht a,b,c,tt… ;-)

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Alex schrieb:
> Soll man die Teile, die mit dem UND'&&' getrennt sind. mit dem
> Klammern() umschlagen

Führt m.E. lediglich zu schlechterer Lesbarkeit.

von Mark B. (markbrandis)


Lesenswert?

Alex schrieb:
> Soll man die Teile, die mit dem UND'&&' getrennt sind. mit dem
> Klammern() umschlagen

Führt m.E. lediglich zu besserer Lesbarkeit. :-)

von Irgendwer (Gast)


Lesenswert?

if ( (a == (b & 0x01))
   &&(d != c) )
{
...
}

Ich bin eher der Freund von mehr Klammern und etwas mehr Luft in dem 
ganzen

von K.L. (Gast)


Lesenswert?

einfach auf BASCOM umsteigen !

If A = 5 And B = 7 Then
End If

... geht ohne mekern.

von Alex (Gast)


Lesenswert?

Vielen Dank!

von A. S. (Gast)


Lesenswert?

So eine Warnung kannst Du abschalten, wenn Du sicher bist, dass jeder, 
der den Code später liest oder wartet, ohne Nachzudenken weiss, dass && 
später bindet als !=/== .

Andernfalls Klammere. Klammern sind bei solchen Zeilen meist nicht das 
Problem.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.