Sign in Join
Wiki copytemporary

Revision 1 of 1, by Trev on 1-14-2020. The page as it is now.

Else/es

Else at Language Reference

Else es una keyword que estable que acción hacer si la condición evaluada es false.

If then else

pascal
  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.

pascal
  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:

pascal
  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".

pascal
  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:

pascal
  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.

pascal
  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.