Ir ao conteúdo
  • Cadastre-se

Estrutura condicional if dentro de if


Posts recomendados

  • Membro VIP

Olá @Thetheu Diias.

 

15 horas atrás, Thetheu Diias disse:

estou em dúvida quanto a usar o IF dentro de outro IF

Não tem mistério...

 

Talvez não seja preciso, mas vou tentar falar um pouco antes sobre o tema...

 

Então, os if no Pascal funcionam como "estruturas de seleção", ou seja, servem para "selecionar" se determinado trecho do código deve ser executado ou não... O que será "selecionado" é a próxima estrutura depois do then. Ou vai ser "uma" instrução, ou vai ser um bloco de instruções (begin/end).

 

Mas como assim? no Pascal, as instruções (cada linha do programa*) são executados sequencialmente da "esquerda para direita, de cima para baixa". Exatamente da mesma forma que nós brasileiros lemos um texto. Daí, a depender da sua necessidade, será preciso organizar esse sequência de passos para que alcance um objetivo desejado...

 

Só que ocorre que a depender de condições, o código pode seguir um caminho diferente.. daí surge esses if para "verificar a(s) condições(s) e determinar qual "rota" o código deve seguir nesse momento.

 

...

 

Em relação aos if dentro de if vai funcionar assim mais ou menos assim:

 

Vou usar de um exemplo:

- Crie um programa que verifique se determinada pessoa deverá se alistar no exercito ou não.

Program Ex01;
var
  sexo :char;
  idade:integer;
BEGIN
writeln('Qual o sexo da pessoa [m] ou [f]');
readln(sexo);
writeln('Qual o idade da pessoa')
readln(idade);
if (sexo='m') then
  if (idade>=18) then //esse condição só será verificada se a anterior for verdadeira
    writeln('Ele é do sexo maisculino e tem mais de 18 anos, DEVE SE ALISTAR');
if (sexo='f') then
  writeln('é mulher! Tá liberado');
End.

Veja que apesar de parecer que no if do temos "duas linhas", na verdade só temos "uma", pois a terceira linha está "dentro" do if acima, ou seja, está "amarrado a segunda linha".

 

Mas se eu precisar inserir mais linhas dentro do primeiro if do sexo, e que não esteja dentro do if da idade, vai um exemplo:

Program Ex01;
var
  sexo :char;
  idade:integer;
BEGIN
writeln('Qual o sexo da pessoa [m] ou [f]');
readln(sexo);
writeln('Qual o idade da pessoa');
readln(idade);
if (sexo='m') then
  begin //begin logo após o then
  writeln('beleza, temos um homem aqui!');
  writeln('...'); //eu posso colocar quantas linhas eu quiser dentro desse begin/end
  if (idade>=18) then //esse condição só será verificada se a anterior for verdadeira
    writeln('Ele é do sexo maisculino e tem mais de 18 anos, DEVE SE ALISTAR');
  writeln('Dados dele');
  writeln('SEXO :',sexo);
  writeln('IDADE:',idade);
  end; //end após o que está dentro dele
if (sexo='f') then
  writeln('é mulher! Tá liberado');
End.

Veja que apenas coloquei um begin/end após o if do sexo e inserir o que precisava dentro dele. O que também incluiu um if. Não existe qualquer relação entre uma coisa e outra... trata-se apenas se "um controle de fluxo ", ou seja, que instrução vai ser executada ou não a depender da condição... o programa não sabe que eu estou relacionado o sexo e idade, isso é uma abstração do programador!!! Você pode colocar o que quiser dentro desse if (ou em qualquer parte do código)... Poderia colocar mais 3 ifs, colocar laços de repetição, leitura de dados etc... sem problemas!

 

Entenda que os if servem apenas para deslocar o fluxo padrão da sequência. Assim como verá que os laços de repetição servirá para "reposicionar a ordem", ou seja, fazer que a ordem volte para determinada posição do código, dando o efeito de "loop" (repetição).. esse loop também será sempre condicionado a uma condição, assim como o if. Os if servem para "eu executo o que está dentro de mim ou não?. Os laços de repetições serviram para "eu executo mais uma vez o que está dentro de mim ou não?"

 

Se um está dentro do outro ou não, não importa!!! Como disse, essa combinação quem faz é o programador, de forma que se comporte da maneira desejada.

 

***

 

 

Se tiver fazendo algum exercício, poste aqui e mostre onde está com dúvidas.

 

No aguardo.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!