Manual de comandos RoboBASIC Castellano
ELSE [sentencias a ejecutar si no se cumplen las condiciones anteriores]
ENDIF
Explicación del comando
Cuando se ejecuta una sentencia IF ... THEN, se evalúa la condición que sigue a IF. Si se cumple la condición
(TRUE), se procesa la sentencia THEN. Si no se cumple la condición, (FALSE), se evaluarán las condiciones
ELSEIF y se ejecutará la apropiada. Si no se cumple ninguna, se ejecutará la sentencia ELSE. Puede usar también la
sentencia, ELSEIF, si fuese necesario.
En roboBASIC, la sentencia (IF..THEN) es crucial para trabajar con señales externas de entrada y almacenar su
valor en una variable. La sentencia condicional evalúa una variable y permite al robot moverse de acuerdo con este
valor obtenido y procesado.
Ejemplo del comando
La ejecución de la condición y la sentencia es muy sencilla. Ambas pueden incluirse en la misma línea.
IF A > 0 THEN B = 5
IF A < 5 THEN B = 0 ELSE B = 1
La condición a evaluar de una sentencia IF puede usar dos tipos de condiciones si se usa un operador relacional.
IF A > 0 AND A < 5 THEN B = 3
IF A = 7 OR A = 9 THEN B = 1
Ejemplo de una sentencia IF un poco más compleja
IF A = 1 THEN
B = 2
C = 3
ELSEIF A = 3 AND A = 5 THEN
B = 1
C = 2
ELSEIF A = 8 THEN
B = 6
C = 0
ELSE
B = 0
C = 0
ENDIF
FOR ... NEXT
Bucle (Repetición de sentencias un numero determinado de veces)
Sintaxis
- Sintaxis:
FOR [contador] = [inicio] TO [final]
[sentencias a ejecutar]
NEXT [contador]
Explicación del comando
La variable [Contador] cuenta el número de repeticiones. [Inicio] es el valor inicial de la variable contador, [final] es
el valor máximo del contador. Para los valores de [Inicio] y [Final] se puede usar un valor, una constante o una
variable.
En roboBASIC, el valor de [Final] debe ser mayor que el valor de [Inicio]. RoboBASIC incrementa el valor de
la variable contador. Existen algunas reglas a la hora de usar las sentencias FOR...NEXT.
Una bucle FOR...NEXT puede usarse dentro de otro FOR...NEXT (Anidamiento).
FOR I = 1 TO 10
FOR J = 1 TO 5
..........
NEXT J
NEXT I
Al usar varias sentencias FOR...NEXT, el orden de NEXT [contador] no puede cambiarse.
HITEC ROBONOVA
11
http://www.robonova.com
Manual de comandos RoboBASIC Castellano
Incorrecto
FOR I = 1 TO 10
FOR J = 1 TO 5
.........
NEXT I
NEXT J
Aunque hubiésemos usado el ejemplo anterior marcado como incorrecto, no se producirá ningún error hasta que
hayamos volcado el código al robot.
Es posible salir del interior de un bucle FOR...NEXT pero es completamente imposible entrar directamente a una
de sus líneas desde el exterior
El valor de las variables [Contador], [Inicio] y [Final] no se deberían cambiar arbitrariamente dentro de un bucle
FOR...NEXT.
Ejemplo del comando
Conecte el L.E.D. al puerto #0 del controlador y haga que destelle 5 veces.
DIM A AS BYTE
'Declara la variable a usar como contador
FOR A = 1 TO 5
'Se repite 5 veces
OUT 0, 0
'Enciende el L.E.D. conectado al puerto #0
DELAY 1 0 'Pausa de 100
OUT 0, 1
'Apaga el L.E.D. del puerto #0
DELAY 100 'Pausa de 100
NEXT A
GOTO
Salta a un punto especificado.
Sintaxis
- Sintaxis: GOTO [Etiqueta]
Explicación del comando
El comando GOTO cambia el flujo de ejecución del programa saltando a una línea específica. La utilización del
comando GOTO complica demasiado la comprensión de la ejecución del programa. No lo use demasiado.
Ejemplo
DIM I AS INTEGER
DIM J AS BYTE
I = 7
HITEC ROBONOVA
12
Correcto
For I = 1 to 10
For J = 1 to 5
......
Next J
Next I
http://www.robonova.com