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.

Artigo criado por














Vixi ,num saquei qual é que é a do exercício 2 não cara.
[Reply]
Renan M. Pimentel Reply:
February 14th, 2012 at 13:32
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:
February 14th, 2012 at 14:47
Já consegui mano ,vlw.
[Reply]
Renan M. Pimentel Reply:
February 14th, 2012 at 14:51
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:
February 27th, 2012 at 21:20
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:
February 27th, 2012 at 21:22
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:
February 29th, 2012 at 02:46
$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]