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.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
