In der Progr. Wird häufig gezählt. Das Hochzählen stellt eine Erhöhung um 1 dar. Bsp.: i=i+1 oder i+=1; Das Runterzählen stellt eine Verminderung um 1 dar. Bsp.: j=j-1 oder j-=1; Für diese Sonderfälle gibt es die Operatoren ++ für Inkrement und - - für Dekrement. Sie haben in der Rangfolge der Operatoren die gleiche Rangfolge. Sie sind aber höherwertiger als die arithmetischen Operatoren und niederwertiger als die Klammern. Inkremente u. Dekremente können auf Variable angewendet werden. Hiermit muss berücksichtigt werden, daß diese Operatoren in Prä- u. Postfixnotation verwendet werden können. Steht d. Operator vor (Präfix) der Variablen, wird diese vor Auswertung des Ausdrucks verändert. Bsp.: a=++b; Steht d. Operator nach (Postfix) der Variablen, wird diese erst nach der Auswertung des Ausdrucks verändert. Bsp.: a=b++; Werden Prä- u. Postinkrement bzw. Prä- u. Postdekrement als einzige Anweisung benutzt, gibt es keinen Unterschied. Bsp.: b++; oder ++b; b- -; oder - - b; Beispiele: b=a++; gleichbedeutend mit: b=a; a+=1; b=a;a++ int a=10,b; b=a++ b=10,a=11 b) b=++a; gleichbedeutend mit: a+=1;b=a int a=10,b; b=++a; ==> a=11;b=11; a=10;b=20;c=30; c+=- -b+a++-5; Welchen Wert hat nun jede Variable? Zuerst Präfixnotation von b beachten: b-=1;b19 Es kann danach gerechnet werden: c=c+b+a-5; c=30+19+10-5; c=54 Jetzt noch die Postfixnotation von a berücksichtigen: a+=1 a=a+1=11 Was passiert hier? i =10; j=20; i*=++j+2; Zuerst Präfixnotation von j beachten: j=j+1=21 i*=21+2; Hier findet eine implizite Klammerung des Ausdrucks j+2 statt (j+2) i*=(j+2); oder i=10*(21+2)=i=10*23=230
|