Guía mínima de Ada 95 |
| if Exp_lógica then
sentencias; end if; |
if Exp_lógica then
sentencias; else sentencias; end if; |
El selector debe ser una expresión discreta de tipos integer o enumerados (tipo ordinal). Las alternativas pueden ser uno o varios valores, o rangos, del tipo del selector separados por "|" (equivale al operador OR).
case mes is
when 1 .. 2 | 12 => put("El invierno
es duro");
when 3 .. 5 => put("Primavera
de la vida");
when 6 .. 8 => put("Estación
llena de diversión");
when 9 .. 11 => put("Época
de reflexión");
when others => put("¿En
qué planeta estás?");
end case;
Los valores no pueden repetirse entre dos cláusulas "when". En
el caso de que las cláusulas "when" no cubran todos los posibles
valores del tipo del selector, es necesario incluir la cláusula
"others" para los valores no contemplados.
for variable in [reverse]
secuencia de control loop
...
end loop;
La variable de control es local al bucle, NO SE DECLARA (es del tipo de la secuencia de control) y no puede modificarse explícitamente. La secuencia de control puede ser un rango de un tipo ordinal (entero o enumerado). Cuando se utiliza "reverse" la secuencia de control se recorre en orden inverso:
for num in reverse 1..5
loop
Put(num); -- escribe 5
4 3 2 1
end loop;
Controlada por condición lógica.
while condición loop
...
end loop;
Bucles sin esquema de iteración.
En Ada se puede construir un bucle tal como:
loop
...
end loop;
del que se sale, normalmente, mediante una sentencia "exit when" o con una alternativa que contenga una cláusula "exit".
loop
...
exit when
condición;
...
end loop;
(la parte delimitada por corchetes es opcional)
Un bloque puede ponerse en cualquier sitio donde pueda ponerse una sentencia simple.
Ejemplos de bloques:
--bloque sin declaraciones locales
begin
Put_Line("Hola");
end;
--bloque con declaraciones locales
declare
Aux : integer; --la variable
Aux sólo existe dentro del bloque
begin
Aux := i; --i, j están
declarados en un ámbito más externo
i := j;
j := Aux;
end;