Else/es
Deutsch · English · Español · Français · Suomi · Русский
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;From the Free Pascal wiki, page "Else/es", as it stood on 2020-01-14 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.