Sign in Join
Wiki copytemporary

Else/es

Deutsch · English · Español · Français · Suomi · Русский

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.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.