2017-08-31 3 views
-6

Ich würde gerne wissen, was Vorrang und Assoziativität bedeutet. Was ist die Reihenfolge der Präzedenz? Ich habe einen Ausdruck und ich verstehe nicht, wie die Antwort 8 ist?Was bedeutet Operatorenpräzedenz und Assoziativität in C#?

int a=5; 
int c=2; 
int b=a++ * (c+10)/ (a+1); 
Console.WriteLine(b); 

Danke für Ihre Hilfe.

+11

gleich ist, würde Sie sofort eine Antwort bekommen haben, wenn Sie das in Ihrer bevorzugten Suchmaschine eingegeben haben würde, anstatt hier fragen. –

+0

'a ++ * (c + 10)' -> Rechter Mausklick und Uhr hinzufügen, '(a + 1)' -> Rechtsklick und Uhr hinzufügen. Dann teile sie. – Berkay

Antwort

2

Sie müssen nur die Operatoren in der Reihenfolge anwenden, die Sie sehen, um dies zu verstehen.

int b=a++ * (c+10)/ (a+1); 

Zuerst haben Sie a++. Dies bedeutet, dass Sie den tatsächlichen Wert von a verwenden, und erhöhen Sie es dann um 1. So würden Sie a durch 5 ersetzen und dann den aktuellen gespeicherten Wert von a durch 1 ersetzen und 6 geben. Für den Rest, da gibt es nichts spezielle, ersetzen Sie nur die Werte, die von den gespeicherten Werten, jetzt zu wissen, dass a bis 6.

b = 5 * (2+10)/(6+1) 
=> b = 5 * 12/7 
=> b = 8 (as b is an integer, the real value would be ~8.57 for a float value)