Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Chatbox

    Lembre-se de ler as nossas regras!
    Load More
    You don't have permission to chat.
T0E

If, else e elseif as estruturas de controle no PHP

Recommended Posts

Imagine o seguinte problema.

Problema

  • Ler a entrada de 4 notas de um aluno
  • Obter sua média
  • Se a média for maior ou igual a 7 retornar aprovado menor que 7 retornar reprovado
  • Exibir a média do aluno e se foi aprovado ou reprovado

Como você pode observar as partes 1 e 2 do problema poderíamos resolver facilmente com os operadores aritméticos. Veja o exemplo a seguir:

<?php

/**
 * Entrada das 4 notas do aluno
 */
$nota1 = 10;
$nota2 = 9;
$nota3 = 7;
$nota4 = 5;

/**
 * Obtendo a média do aluno
 */
$resultado = ($nota1 + $nota2 + $nota3 + $nota4) / 4;

/**
 * Retornando a média
 */
echo $resultado;

?>

No entanto a parte 3, não poderíamos desenvolver até aqui, pois necessitamos das estruturas de controle, que você irá ver agora.

If o desvio condicional simples no PHP

O construtor If tem como objetivo executar todo o código que esteja entre o construtor caso o resultado da avaliação seja verdadeiro caso contrario nada será executado.

Continuando o problema anterior mais neste ponto apenas um fragmento para ilustrar.

Problema

  • Ler a entrada de 4 notas de um aluno
  • Obter sua média
  • Se a média for maior ou igual a 7 retornar aprovado
  • Exibir a média do aluno e se foi aprovado

 

No PHP

Seguimos a mesma lógica do código anterior, no entanto observe que criamos a variável $mensagem, em seguida criamos a nossa estrutura de controle If com o operador de comparação >= se esta expressão for verdadeira a variável $mensagem terá uma valor dizendo que o aluno foi aprovado. Se a nota for menor que 7 apenas exibe a nota. Observe o código a seguir:

<?php

/**
 * Entrada das 4 notas do aluno
 */
$nota1 = 10;
$nota2 = 9;
$nota3 = 7;
$nota4 = 5;

/**
 * Obtendo a média do aluno
 */
$resultado = ($nota1 + $nota2 + $nota3 + $nota4) / 4;

/**
 * Crio a mensagem
 */
$mensagem = '';
if( $resultado >= 7 ){

  $mensagem = ' o aluno foi aprovado';

}

/**
 * Retornando a média
 */
echo $resultado . $mensagem;

?>

Até aqui está legal nosso programa, se a nota for maior que 7 ele exibe que foi aprovado, no entanto ainda falta ele exibir também quando o aluno for reprovado, pois até o momento quando ele é reprovado apenas a nota é exibida, então é neste ponto que conheceremos outra estrutura de controle o else.

Else o desvio condicional composto no PHP

 

O else é a estrutura de controle que é executada quando o If, ou elseif, você aprenderá a seguir, for retornado falso.

Continuando o nosso primeiro problema apresentado agora poderemos exibir a média e se foi aprovado ou reprovado. Lembrando que com apenas o If conseguíamos exibir apenas o aprovado.

No PHP

Seguimos a mesma lógica do código anterior, no entanto observe que logo após o fechamento do if inserimos a nossa nova clausula else. O que poderia ser lido assim “se resultado for maior ou igual a 7 o aluno foi aprovado senão o aluno foi reprovado”. Lembrando que será executado o bloco if se a expressão, em nosso caso $resultado >= 7, for verdadeira senão será executado o else. Observe o código a seguir:

<?php

/**
 * Entrada das 4 notas do aluno
 */
$nota1 = 10;
$nota2 = 2;
$nota3 = 7;
$nota4 = 5;

/**
 * Obtendo a média do aluno
 */
$resultado = ($nota1 + $nota2 + $nota3 + $nota4) / 4;

/**
 * Crio a mensagem
 */
$mensagem = '';
if( $resultado >= 7 ){

  $mensagem = ' o aluno foi aprovado';

} else {

  $mensagem = ' o aluno foi reprovado';

}

/**
 * Retornando a média
 */
echo $resultado . $mensagem;

?>

Tudo bem até aqui finalizamos o nosso problema, apresentado no inicio. No entanto podemos o incrementar ainda mais para ficar mais legal. E se o aluno tirar 10? Ele foi aprovado, mais podemos exibir uma mensagem especial igual as que as professoras de primário exibem. Sendo assim se o aluno tirar 10 exibiremos uma mensagem especial e para exibir esta mensagem especial utilizaremos da estrutura de controle elseif.

Elseif outro desvio condicional composto no PHP

 

elseif é a estrutura de controle que será avaliada após o if retornar falso, o elseif é inserido antes do else, e mais de um elseif pode ser inserido, lembrando que o elseif avalia expressões assim como o if. Ficando assim se um if retornar falso caíra no elseif, se o elseif retornar falso cairá no próximo elseif se houver, após todos os elseif finaliza á lógica no else.

Continuando nossa lógica da média do aluno, iremos exibir uma mensagem de sucesso quando ele tirar 10, e uma mensagem para ele estudar mais se tirar 0, pois como foi dito podemos ter mais de um elseif, além do que já esta sendo exibido o aprovado e reprovado.

No PHP

Mantendo a mesma lógica do código anterior adicionamos 2 estruturas elseif antes do else. Uma para quando a média do aluno for igual a 0 e outra para quando a média do aluno for igual a 10, assim retornando mensagens personalizadas para estas médias. Observe que adicionamos uma nova condição ao if com o operador lógico && e com o operador de comparação != pois aqui dissemos para retornar o resultado do if se a nota for maior ou igual a 7 e não igual a 10, afinal 10 tem um tratamento especial. Agora porque não colocamos o operador de negação no 0? Porque o if só é executado se o $resultado for maior ou igual a 7 e como o 0 é menor ele não se encaixa no if e seguiria para o próximo elseif. Observe o código a seguir:

<?php

/**
 * Entrada das 4 notas do aluno
 */
$nota1 = 10;
$nota2 = 10;
$nota3 = 10;
$nota4 = 10;

/**
 * Obtendo a média do aluno
 */
$resultado = ($nota1 + $nota2 + $nota3 + $nota4) / 4;

/**
 * Crio a mensagem
 */
$mensagem = '';
if ( $resultado >= 7 && $resultado != 10 ) {

  $mensagem = ' o aluno foi aprovado.';

} elseif ( $resultado == 0 ) {

  $mensagem = ' estude mais, você não acertou nada.';

} elseif ( $resultado == 10 ) {

  $mensagem = ' parabéns! Aprovado com nota máxima.';

} else {

  $mensagem = ' o aluno foi reprovado.';

}

/**
 * Retornando a média
 */
echo $resultado . $mensagem;

?>

É isso, até mais!   xD


Fonte: AprenderPHP.com.br

  • Like 2

Share this post


Link to post
Share on other sites

em breve estarei estudando php , só que preciso dominar mais o html e css para isso '-' obrigado por postar

Share this post


Link to post
Share on other sites

O tutorial está muito bem explicado e organizado, parabéns.
Uma dica, notei que algumas partes estão um tanto quanto muito "técnicas", o que geralmente dificulta o aprendizado para quem é iniciante, talvez fosse relevante criar explicações mais dinâmicas, e tal.

Share this post


Link to post
Share on other sites
15 horas atrás, Wiz-Khalifa disse:

eu tento aprender if mais semrpe me atrapalho

Você não sabe if e else? KKKKKKK ue

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×