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 endse houver apenas uma linha após then; obrigatório para múltiplas linhas ; - O
elsese 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