Verificação condicional if

Use if .. then ou if .. then .. else para executar o código correspondente quando a condição for verdadeira. Diferente das linguagens estilo C: a expressão condicional em Pascal não precisa de parênteses.

var
  A: Integer;
  B: boolean;
begin
  // Apenas uma instrução se a condição for atendida, sem necessidade de begin end
  if A > 0 then
    DoSomething;

  // Várias instruções após a condição, obrigatório envolver com begin end
  if A > 0 then
  begin
    DoSomething;
    AndDoSomethingMore;
  end;

  // Estrutura if-else de linha única
  if A > 10 then
    DoSomething
  else
    DoSomethingElse;

  // Lógica idêntica ao código acima: armazenar resultado da comparação em variável booleana
  B := A > 10;
  if B then
    DoSomething
  else
    DoSomethingElse;
end;Code language: JavaScript (javascript)

Regra de associação do else

O else se associa ao if mais próximo sem else correspondente. O código abaixo funciona como esperado:

if A <> 0 then
  if B <> 0 then
    AIsNonzeroAndBToo
  else
    AIsNonzeroButBIsZero;Code language: HTML, XML (xml)

Esse else pertence ao if interno if B <> 0.

If aninhados sem bloco são sintaticamente válidos mas difíceis de ler. Recomenda-se envolver toda a lógica interna com begin … end para delimitar claramente os blocos lógicos; mesmo com indentação bagunçada, distingue-se facilmente os escopos e evita bugs ao adicionar ou remover ramificações.

Forma padrão otimizada:

if A <> 0 then
begin
  if B <> 0 then
    AIsNonzeroAndBToo
  else
    AIsNonzeroButBIsZero;
end;Code language: HTML, XML (xml)
  • Sem parênteses ao redor da condição do if (obrigatório em C/C++/Java, o oposto em Pascal) ;
  • É possível omitir begin end se houver apenas uma linha após then; obrigatório para múltiplas linhas ;
  • O else se emparelha com o if interno mais próximo; use sempre blocos em estruturas aninhadas para eliminar ambiguidade ;
  • Expressões de comparação (ex: A>10) podem ser atribuídas diretamente a variáveis booleanas.

Abaixo um exemplo completo executável: sistema de classificação por nota

Regras lógicas:

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

var
  score: Integer;
begin
  Write('Digite a nota da prova: ');
  ReadLn(score);

  if score >= 90 then
    Writeln('Classificação: A')
  else if score >= 80 then
    Writeln('Classificação: B')
  else if score >= 60 then
    Writeln('Classificação: C')
  else
    Writeln('Classificação: D');

  ReadLn;
end.Code language: PHP (php)

Compile e execute

Digite a nota da prova: 96
Classificação: A

O programa pede que você insira uma nota e exibe a classificação correspondente.

Caracteres não latinos podem aparecer com falhas de exibição, adicione essa linha: {$codepage utf8}

Também podemos encapsular o cálculo da classificação em uma função.

{$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('Sua nota: ');
  ReadLn(score);
  Writeln('Sua classificação: ', GetLevel(score));
  ReadLn;
end.Code language: PHP (php)

Verificação condicional if

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *