Feb
13
2012

Programando em PHP #4 – Estrutura de Controle (parte 1)

Estrutura de Controle (Parte 1)

Fala galera, vamos falar dar sequencia aqui a mais capitulo da nossa série, de PHP. Hoje vamos falar sobre estruturas de controle. O que vai ser vai nos ajudar bastante.

Então, sem mais delongas, vamos por mão na massa.

A nossa primeira estrutura de controle é o if, como em todas as linguagens de programação, ela é uma estrutura que introduz um desvio condicional, ou seja, um desvio de execução natural do programa. Em outras palavras, se a condição dada pela expressão for satisfatória, será executado um bloco de comandos, caso a condição não seja satisfatória, o bloco de comando será ignorado.

“Na lógica de programação ficaria assim: SE (comandos) ENTÃO {comandos}”.

E quando a expressao não for satisfatória e você precise mostrar um resultado ou executar outro bloco de comandos, usamos o else.

“Na lógica de programação ficaria assim: SE (comandos) ENTÃO {comandos} CASO CONTRARIO {comandos}”.

Veja um exemplo real:

<?php
$a = 5;
$b = 10;

if($a+$b==15){
 echo “Resposta Correta!”
}
else{
 echo “Resposta Errada!”;
}
?>

O que vai ser impresso na tela: Resposta Correta!

Agora, com um pouco mais de atenção, vamos realizar algumas comparações encadeadas, ou seja, if dentro de if.

<?php
$nota = 8;
$faltas = 25;

//Para passar de ano o aluno tem que ter media
//acima de 6 e ter menos de 30 faltas
if($nota >= 6){
 if ($faltas <= 30){
 echo “Aluno Aprovado!”;
 }else{
 echo “Aluno reprovado por faltas”;
 }
}
else {
 echo “Aluno reprovado por notas”;
}

//Aqui foi apenas um exemplo simples de como
//podemos aplicar isso no nosso dia-a-dia.
?>

O que vai ser impresso na tela: Aluno Aprovado!

E podemos fazer tudo isso em apenas um if, usando o operador AND

<?php
$nota = 8;
$faltas = 25;

if( ($nota >= 6) AND ($faltas <= 30) ){
 echo “Aluno Aprovado!”;
}
else{
 echo “Aluno Reprovado!”;
}
?>

O que vai ser impresso na tela: Aluno Aprovado!

#Dica

Vou mostrar rapidinho como usar o if inline que vai deixar o seu código mais bonito.

<?php
$nota = 7;
if ($nota >= 6){
 $resultado = “Aprovado”;
}else{
 $resultado = “Reprovado”;
}
?>

Agora, vamos fazer tudo isso em uma linha só, o que acham?

$resultado = ($nota >= 6) ? “Aprovado” : “Reprovado”;

A primeira condição é a expressão a ser avaliada; a segunda é o valor atribuído caso ela seja verdadeira e a terceira é o valor atribuído caso ela seja falsa.

A próxima estrutura a ser estudada é o switch, que é uma estrutura que simula uma bateria de testes sobre uma variável. É muito parecido com o if, que nada mais é do que uma série de comandos if sobre uma variável. A gente usa quando precisamos comprar uma variável com vários valores, então ao invés de usar vários if’s a gente usa apenas um switch.

Vou fazer dois exemplos um de forma errada usando if e outra de forma correta usando switch.

Usando if

<?php
$valor = 0;

if($valor == 0){
 echo “0”;
}
elseif($valor == 1){
 echo “1”;
}
elseif($valor == 2){
 echo “2”;
}
elseif($valor == 3){
 echo “3”;
}
elseif($valor == 4){
 echo “4”;
}
else{
 echo “não é igual a nenhum numero”;
}
?>

Agora vamos a forma correta, usando switch

<?php
$valor = 0;

switch ($valor){
 case 0:
 echo “0”;
 break;
case 1:
 echo “1”;
 break;
case 2:
 echo “2”;
 break;
case 3:
 echo “3”;
 break;
case 4:
 echo “4”;
 break;
default:
 echo “não é igual a nenhum numero”;
}
?>

Então, ele lê assim, caso a variável seja 0, ele vai mostrar zero, caso seja 1, ele vai mostrar um, e assim por diante.

O que mostra que o switch é muito melhor para fazer esse tipo de controle.

Desafio #1

01 – Fazer um script que leia um valor (uma variável) de uma conta de luz e, caso o valor seja maior que R$ 50,00 apresente a mensagem: “Você está gastando muito”. Caso contrário exiba a mensagem: “Seu gasto foi normal”.

02 – Leia um numero inteiro e mostre uma mensagem indicando se este número é positivo ou negativo, e em seguida se o mesmo número é par ou ímpar.

03 – Crie um script de opções (usando switch) com 3 opções, se o valor da variável for 1 (um) imprimir na tela “Bom dia”, se for 2 (dois) imprimir na tela “Boa Tarde”, se for 3 (três) imprimir na tela “Boa Noite” e se for digitado outro numero qualquer, mostrar na tela “Opção não encontrada”.

Boa sorte pessoal!

Não precisa colocar <?php  ?>  nas resposta.


Receba nossos artigos em seu Email!


Digite o seu email abaixo:

Posts Relacionados:

Sobre o Autor: Renan Martins

Desenvolvedor Web, apaixonado pelo que faz!

11 Comments + Add Comment

  • Vixi ,num saquei qual é que é a do exercício 2 não cara.

    [Reply]

    Renan M. Pimentel Reply:

    Só você usar if encadeado, eu expliquei no post.

    Faz, e cola aqui pra gente ver, assim eu posso te ajudar.

    Boa sorte!

    [Reply]

    castrojunin Reply:

    Já consegui mano ,vlw.

    [Reply]

    Renan M. Pimentel Reply:

    Qualquer duvida, poste aqui o codigo.

  • Não sei se deveria postar aqui, de qualquer forma, ai vai.

    01 :

    //vamos ler o valor por get desta vez, quem sabe da proxima usamos post
    $valor = $_GET['valor'];

    //vamor forçar um cast para ter certeza que temos um um numero
    //como o numero é de uma conta, entao vamos assumir que possa receber valor
    //quebrado ( ou ponto flutuante )
    // entao vamos usar float
    settype($valor, float);

    //vamos fazer a verificação
    if ($valor > 50.00) {
    echo “Você está gastando muito”;
    } else {
    echo “Seu gasto foi normal”;
    }

    ( versão rapida )
    $valor = $_GET['valor'];
    settype($valor, float);
    echo ($valor > 50.00) ? “Você está gastando muito” : “Seu gasto foi normal” ;

    02 – Leia um numero inteiro e mostre uma mensagem indicando se este número é positivo ou negativo, e em seguida se o mesmo número é par ou ímpar.

    //vamos declarar esta variavel como se fosse o numero que o usuario passou
    $numero = 10;

    // vou fazer em forma de função para entrar no conceito de dry
    function isPostive($num){
    //vamos verificar se é mesmo int ou não , estou usando negação para verificar
    if(!is_int($num)){
    echo “Voce deve informar numeros inteiros”;
    // vou dar um return para acabar com a funcao;
    return null;
    }

    //vamos verificar se é positivo ou não
    //temos varias formas de verificar, podemos apenas tentar encontrar um sinal de -(menos)
    // na frente do numero, mas vamos fazer isso de forma simples,
    // vou verificar se ele é maior zero, se for é positivo , se não ele é menor, ou zero ( que é neutro )
    if ($num > 0) {
    echo “O numero eh positivo”;
    } elseif($num < 0) {
    echo "O numero eh negativo";
    } else {
    //somente em caso de zero
    echo " O numero eh neutro";
    }

    //vamos colocar um linebreak aqui
    echo "”;
    if ($num % 2 == 0) {
    echo “O numero eh par “;
    } else {
    echo “O numero eh impar”;
    }

    }

    // e por ultimo
    //vamos chamar nossa função
    isPostive($numero);

    ( sim eu sei que ficou um pouco extenso, mas acredito que está bem feito, e bem explicado )

    03 –

    switch ($valor) {
    case 1:
    echo “Bom dia”;
    break;
    case 2:
    echo “Boa Tarde”;
    break;
    case 3:
    echo “Boa Noite”;
    break;
    default:
    echo “Opção não encontrada”;

    }

    [Reply]

  • Renan tenho dificuldades para gravar os comandos, Será que eu irei decorar somente na pratica?

    [Reply]

    Renan M. Pimentel Reply:

    Douglas,

    Como tudo na vida, só a pratica leva a perfeição. E tudo no começo é dificil, o importante é você sentir a evolução no seu aprendizado. Qualquer dúvida, estamos aqui para isso.

    Abraços!

    [Reply]

  • Exercicio #1

    $valor = 63;

    if($valor <= 50){
    echo "Seu gasto foi normal este mês.";
    }
    else {
    echo "Você está gastando Muito.";
    }

    Exercicio #2

    Não Entendi

    Exercicio #3

    $valor = 5;

    switch ($valor){
    case 1;
    echo "Bom Dia";
    break;
    case 2;
    echo "Boa Tarde";
    break;
    case 3;
    echo "Boa Noite";
    break;
    default:
    echo "Opção não encontrada";
    }

    [Reply]

    Renan M. Pimentel Reply:

    Douglas,

    Você precisa comparar apenas, se o valor for maior igual a 0, ele é positivo (+) ou se ele for menor que 0 ele é negativo (-).

    Ou seja, 1 é maior que 0, por isso é positivo Já o -1, é menor que zero, logo se torna um valor negativo.

    Tenta agora, e posta aqui pra gente.

    Boa sorte!

    [Reply]

    Douglas Delabrida Reply:

    $numero = -5;
    if ($numero >0)
    echo “Este numero e Positivo”;
    else {
    echo “Este numero e Negativo”;
    }

    Cara muito obrigado pela atenção estou aprendendo muito com você.
    Sei so HTML + CSS Padrões w3c.

    [Reply]

  • //Desafio #1

    //Exercício 1

    $conta = 45.00;

    if($conta >= 50.00){
    echo “Você está gastando muito!”;
    }else{
    echo “Seu gasto foi normal.”;
    }

    echo “”;

    //Exercício 2

    $numero = -35;

    if($numero > 0){
    echo “Este número é Positivo!”;
    }else{
    echo “Este número é Negativo!”;
    }

    echo “”;

    if($numero %2 == 0){
    echo “Este número é Par!”;
    }else{
    echo “Este número é Impar!”;
    }

    echo “”;

    //Exercício 3

    $valor = 3;

    switch($valor){
    case 1:
    echo “Bom Dia!”;
    break;
    case 2:
    echo “Boa Tarde!”;
    break;
    case 3:
    echo “Boa Noite!”;
    break;
    default:
    echo “Opção não encontrada!”;
    }

    [Reply]

Deixe o sua opinião abaixo

Wix – Criador de Sites

World Plone Day

World Plone Day

Nossos posts no seu Email

Informe seu email abaixo para receber nossas atualizações.

Facebook

Destaques

QuebraLink - Decodifica e inverte links Aprender Algoritmos Dicas Ubuntu Otimização de Sites

Sites Legais

Banner MeuPinguim

Vida de Programador Dicas em Geral - Dicas sobre Informática, Tecnologia e Inclusão Digital Ubuntu Dicas Infológico