Else/es
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
русский (ru) │
Else es una keyword que estable que acción hacer si la condición evaluada es false.
If then else
if (condition)
then true_statement
else false_statement;
Se evalúa el valor de condition, si resulta ser verdadero (true), se ejecuta true_statement, caso contrario se ejecuta false_statement. Si el valor del condicional no arroja un valor booleano ocurrirá un error.
Más sentencias en la sentencia "if then else"
Si se necesitan dos o más sentencias para true_statement o false_statement, el grupo de sentencias deben ubicarse dentro de un Block begin ... end.
if boolean_condition then
begin
statement_one;
statement_two;
end
else
begin
statement_three;
statement_four;
end;
Normalmente la sentencia "else" es una excepción especial a la regla que establece que cada sentencia debe ser seguida por un punto y coma. Ni la palabra reservada "else" ni la sentencia que la precede inmediatamente deben ser seguidas por punto y coma. En el ejemplo precedente, la primer sentencia "end" no es seguida por punto y coma pero la última sí.
Sin embargo, en el caso de sentencias "if" anidadas, si el else corresponde al if "interno", no debe haber un punto y coma antes del else, pero si el else corresponde hacia fuera del else, sí debe haber un punto y coma antes:
if a then //comienza if a
if b then //comienza if b (si a = True)
begin
(..) //bloque para if b = True
end; //fin de if b
else //else de if a porque lo precede un sentencia end finalizada en punto y coma
begin
(..) //bloque para if a = False
end;
En este caso, "else" corresponde a "if a".
if a then //comienza if a
if b then //comienza if b (si a = True)
begin
(..) //bloque para if b = True
end
else //else de if b porque lo precede una sentencia que no finaliza en punto y coma
begin
(..) //bloque para if b = False
end;
En este caso, el else corresponde a "if b". Si esto casusa una ambigüedad, se puede resolver con una sentencia "else" vacía:
if a then //comienzo if a
if b then //comienzo de if b (si a = True)
begin
(..) //bloque para if b = True
end
else //else "vacío" de if b
else //else de if a (si a = false)
begin
(..) //bloque para if a = False
end;
También se puede resolver utilizando bloques begin..end.
if a then
begin //comienzo if a (si a = True)
if b then //comienzo de if b (si a = True)
begin
(..) //bloque para if b = True
end;
end //fin de if a (si a = True)
else //else de if a (si a = false)
begin
(..) //bloque para if a = False
end;
Keywords: begin — do — else — end — for — if — repeat — then — until — while