else
Abre el cuerpo alternativo de un gen, que corre cuando las condiciones del cond dieron falso.
Datos
- Palabra
else- Familia
- Flujo
- Qué hace
- Abre el cuerpo del «si no»: corre solo si las condiciones del gen dieron falso. Después de un start sin cond, de un stop o de otro else, no corre nunca.
- Costo
- Control de flujo; end no cuesta
- Se ejecuta en
- siempre
else es el «si no» del gen. En cond C start A else B stop, el cuerpo A corre cuando las condiciones C son verdaderas y el B cuando son falsas. Nunca corren los dos en el mismo ciclo.
' avanza mientras tenga más de 2000 de energía; si no, gira
cond
*.nrg 2000 >
start
20 .up store
else
50 .aimdx store
stopCon 2500 de energía el bot avanza con .up; con 1500 se queda quieto y gira con .aimdx. Fijate en un detalle: en el primer ciclo gira aunque tenga 2500, porque .nrg todavía vale 0 y la condición da falso. Los sentidos llegan recién desde el segundo ciclo (ver Ejecución y costos).
También vale pegado a las condiciones, sin start: cond C else B stop corre B solo cuando C es falsa, y no hay cuerpo para el caso cierto.
Un else que no tiene un cond … start (o un cond) justo antes no corre nunca: después de un start sin cond, después de un stop o después de otro else.
El else cuenta como un gen aparte en .genes y .thisgene: en cond … start … else … stop hay dos genes.