Operators – Referencia de Lenguaje Spin
Incremento, pre- o post- '
'
+ +
El operador de incremento es un operador inmediato especial que incrementa una variable en
uno y asigna el nuevo valor a la misma variable. Solo puede usarse en tiempo de ejecución en
expresiones variables. Incremento tiene dos formas, pre-incremento y post-incremento,
dependiendo de que lado de la variable aparezca. El pre-incremento aparece a la izquierda y
el post-incremento a la derecha de la variable. Esto es extremadamente útil en programación
ya que hay muchas situaciones que llaman a incrementos de una variable justo antes o
despues de usar el valor de la variable. Por ejemplo:
Y := ++X - 4
El ejemplo anterior muestra la forma de pre-incremento; significa que "incremente el valor
X
antes de proporcionar el valor para la siguiente operación" Incrementa el valor de
en uno, y
X
++X
proporciona el resultado al resto de la expresión. Si
empieza en 5 en este ejemplo,
X
almacenara 6 en
, luego la expresión, 6 - 4 se evalúa y finalmente escribe el resultado 2, en
Y
X
. Después de esta instrucción
es igual a 6 y Y es igual a 2.
Y := X++ - 4
El ejemplo anterior es la forma de post-incremento; significa que "incrementa antes de
X
proporcionar el valor a la siguiente operación". Incrementa el valor de
en uno, escribe el
X
X
X++
resultado en
. Si
empezó en 5 en este ejemplo,
proporcionara el valor actual para la
X
expresión (5 - 4) para ser evaluada posteriormente, entonces almacenara 6 en
. La expresión
Y
X
5 - 4 se evalúa y el resultado , 1, se almacena en
. Después de esta instrucción
es igual a 6
y Y es igual a 1.
Como el incremento es siempre un operador de asignación las reglas de asignación
X
intermedia aplican (ver Pág. 151). Asuma que
inicio en 5 para los siguientes ejemplos:
Y := ++X + X
X
Y
Aquí ,
primero se active a 6, luego 6 + 6 se evalúa y
se active a 12.
Y := X++ + X
X
X
Aquí el valor actual de
, 5, se guarda para la siguiente operación (la suma) y se incrementa
Y
a 6, luego 5 + 6 se evalúa y
se activa a 11.
Pagina 156 · Manual Propeller v1.1