Juicio condicional if

Usa if .. then o if .. then .. else para ejecutar el código correspondiente cuando la condición sea verdadera. A diferencia de los lenguajes estilo C: la expresión condicional en Pascal no necesita paréntesis.

var
  A: Integer;
  B: boolean;
begin
  // Solo una sentencia si se cumple la condición, no hace falta begin end
  if A > 0 then
    DoSomething;

  // Varias sentencias tras la condición, obligatorio envolver con begin end
  if A > 0 then
  begin
    DoSomething;
    AndDoSomethingMore;
  end;

  // Estructura if-else de una sola línea
  if A > 10 then
    DoSomething
  else
    DoSomethingElse;

  // Lógica idéntica al código anterior: guardar el resultado de la comparación en una variable booleana
  B := A > 10;
  if B then
    DoSomething
  else
    DoSomethingElse;
end;Lenguaje del código: JavaScript (javascript)

Regla de vinculación del else

El else se asocia al if más cercano sin else asignado. El código siguiente funciona como se espera:

if A <> 0 then
  if B <> 0 then
    AIsNonzeroAndBToo
  else
    AIsNonzeroButBIsZero;Lenguaje del código: HTML, XML (xml)

Este else pertenece al if interno if B <> 0.

Los if anidados sin bloque son sintácticamente válidos pero difíciles de leer. Se recomienda envolver toda la lógica anidada con begin … end para delimitar claramente los bloques lógicos; incluso con una indentación desordenada, se distinguen fácilmente los ámbitos y se evitan errores al añadir o quitar ramas.

Forma estándar optimizada:

if A <> 0 then
begin
  if B <> 0 then
    AIsNonzeroAndBToo
  else
    AIsNonzeroButBIsZero;
end;Lenguaje del código: HTML, XML (xml)
  • No hay paréntesis alrededor de la condición del if (obligatorios en C/C++/Java, lo opuesto en Pascal) ;
  • Se puede omitir begin end si solo hay una línea después de then; imprescindible para varias líneas ;
  • El else se empareja con el if interno más cercano; usa siempre bloques en estructuras anidadas para eliminar ambigüedad ;
  • Las expresiones de comparación (ej: A>10) se pueden asignar directamente a variables booleanas.

A continuación un ejemplo completo ejecutable: sistema de calificaciones por puntuación

Reglas lógicas:

  • ≥90 → A
  • ≥80 y <90 → B
  • ≥60 y <80 → C
  • <60 → D
{$ifdef FPC} {$mode objfpc} {$H+} {$endif}
{$codepage utf8}
program ScoreLevel;

var
  score: Integer;
begin
  Write('Introduce la nota del examen: ');
  ReadLn(score);

  if score >= 90 then
    Writeln('Calificación: A')
  else if score >= 80 then
    Writeln('Calificación: B')
  else if score >= 60 then
    Writeln('Calificación: C')
  else
    Writeln('Calificación: D');

  ReadLn;
end.Lenguaje del código: PHP (php)

Compilar y ejecutar

Introduce la nota del examen: 96
Calificación: A

El programa pide introducir una nota y muestra la calificación correspondiente.

Los caracteres no latinos pueden verse distorsionados, añade esta línea: {$codepage utf8}

También podemos encapsular el cálculo de la calificación en una función.

{$ifdef FPC} {$mode objfpc} {$H+} {$endif}
{$codepage utf8}
program ScoreLevelFunc;

function GetLevel(s: Integer): string;
begin
  if s >= 90 then
    Result := 'A'
  else if s >= 80 then
    Result := 'B'
  else if s >= 60 then
    Result := 'C'
  else
    Result := 'D';
end;

var
  score: Integer;
begin
  Write('Tu nota: ');
  ReadLn(score);
  Writeln('Tu calificación: ', GetLevel(score));
  ReadLn;
end.Lenguaje del código: PHP (php)

Juicio condicional if

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *