Ir ao conteúdo
  • Cadastre-se
Thetheu Diias

Estrutura condicional if dentro de if

Recommended Posts

Boa tarde galera, sou iniciante na area de programação e estou estudando com o compilador Pascalzim. No entanto estou em dúvida quanto a usar o IF dentro de outro IF. Como seria o procedimento?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×