php 5.3 - estruturas de controle
TRANSCRIPT
Bacharel em Ciência da Computação (UFG) Especializando em Engenharia de Software
Analista de Sistemas – SIGMA / MDIC
Professor Formador EAD – NEAD/ETEB [email protected]
http://www.georgemendonca.com.br
Estruturas de
Controle
• Condicionais
– São estruturas capazes de decidir o fluxo de execução de
um script.
– Tal decisão é definida de acordo com o resultado de uma
expressão lógica fornecida.
– A estrutura mais simples é o comando if.
Estruturas de Controle
13/02/2011 2
• Condicionais
– Condicional if
Estruturas de Controle
13/02/2011 3
Início
Condicional?
Fim
Bloco comandos sim
não
Algoritmo:
Se expressão verdadeira,
executa bloco de comandos,
caso contrário o fluxo segue
imediatamente na próxima
linha.
if(condição) {
bloco-de-comandos
}
PHP:
<?php
$n1 = 5;
$n2 = 2;
if ($n1 > $n2) {
echo "$n1 > $n2";
}
• Condicionais
– Condicional else
Estruturas de Controle
13/02/2011 4
Início
Condicional?
Fim
Comandos 2 não sim
Comandos 1
Algoritmo:
… se a condição lógica dor falsa, o
fluxo é direcionado para outro bloco de
comandos.
if(condição) {
bloco-de-comandos 1
}
else {
bloco-de-comandos 2
}
PHP:
<?php
$n1 = 5;
$n2 = 2;
if ($n1 > $n2) {
echo "$n1 > $n2";
}
else {
echo "$n1 <= $n2";
}
• Condicionais
– Aninhamento de comandos if else
Estruturas de Controle
13/02/2011 5
<?php
$n1 = 5;
$n2 = 2;
if ($n1 >= $n2) {
if($n1 == $n2) {
echo "$n1 = $n2";
}
else {
echo "$n1 > $n2";
}
}
else {
echo "$n1 < $n2";
}
• Condicionais
– if inline
• É uma forma alternativa de implementação da estrutura
condicional if
Estruturas de Controle
13/02/2011 6
Algoritmo:
Nessa estrutura utilizamos 3 partes bácisas:
(expressão) ? (Comandos 1) : (Comandos 2);
A B C
Se A for verdadeiro, executa B, senão executa C.
O resultado pode ser recebido por uma variável:
variável = (expressão) ? (Comandos 1) : (Comandos 2);
Que tal implementarmos os três exemplos de if nessa estrutura? Mãos a
obra!
• Condicionais
– Condicional switch
Estruturas de Controle
13/02/2011 7
Início
Caso 1?
Fim
Comandos 1
não
sim
Caso 2?
Caso N?
Caso i?
não
não
não
Comandos 2
Comandos i
Comandos N
sim
sim
sim
Alternativa padrão
Algoritmo:
Equivale a uma sequência de
comandos if. Caso a expressão
disponibilizada atenda a condição
1, executa o bloco de comandos 1 e
finaliza. Caso contrário o fluxo
segue imediatamente na próxima
linha. E repete o processo
sucessivamente até que uma condição
seja verdadeira ou vá para a
alternativa padrão e finaliza.
• Condicionais
– Condicional switch
Estruturas de Controle
13/02/2011 8
Algoritmo:
switch(condição) {
case ‘caso 1’:
Comandos 1;
break;
case ‘caso 2’:
Comandos 2;
break;
case ‘caso i’:
Comandos i;
break;
case ‘caso N’:
Comandos N;
break;
default:
Alternativa padrão;
break;
}
Início
Caso 1?
Fim
Comandos 1
não
sim
Caso 2?
Caso N?
Caso i?
não
não
não
Comandos 2
Comandos i
Comandos N
sim
sim
sim
Alternativa padrão
• Condicionais
– Condicional switch
Estruturas de Controle
13/02/2011 9
<?php
$nota = 5;
switch ($nota) {
case ($nota >= 7):
echo 'Aprovado!';;
break;
case (($nota>=5) and ($nota< 7)):
echo 'Recuperação!';
break;
case ($nota < 5):
echo 'Reprovado!';
break;
default:
echo 'Nota inválida';
break;
}
Início
Caso 1?
Fim
Comandos 1
não
sim
Caso 2?
Caso N?
Caso i?
não
não
não
Comandos 2
Comandos i
Comandos N
sim
sim
sim
Alternativa padrão
• Repetição
– Estruturas de repetição, assim como as condicionais,
mudam o fluxo da execução do código.
– Porém, possibilitam a execução de um bloco de comandos
em um certo número de vezes, também condicional.
– O bloco de comandos é repetido até que uma condição
lógica seja satisfeita.
Estruturas de Controle
13/02/2011 10
• Repetição
– Estrutura while
Estruturas de Controle
13/02/2011 11
Início
Condicional?
Fim
Comandos
não
sim
Algoritmo:
Enquanto a expressão lógica for
verdadeira o bloco de comandos
sofrerá uma repetição contínua,
até que a expressão seja falsa, e
a fluxo é finalizado.
while(condição) {
bloco-de-comandos 1
}
• Repetição
– Estrutura while
Estruturas de Controle
13/02/2011 12
PHP:
<?php
$anoNascimento = 1979;
$contador = 0;
$idade = 31;
while($contador <= $idade) {
if($contador == $idade) {
echo "Em ".($anoNascimento+$contador)." eu tenho $contador ano(s).<br />";
}
else {
echo "Em ".($anoNascimento+$contador)." eu tinha $contador ano(s).<br />";
}
$contador++;
}
• Repetição
– Estrutura do while
Estruturas de Controle
13/02/2011 13
Início
Condicional?
Fim
Comandos
não
sim
Algoritmo:
Semelhante a estrutura de repetição
while, porém a expressão lógica é
avaliada após a execução do bloco.
Ou seja, mesmo a expressão sendo
falsa, o bloco de comandos será
executado pelo menos uma vez.
do {
bloco-de-comandos 1
} while(condição);
• Repetição
– Estrutura do while
• Imprimindo números ímpares:
Estruturas de Controle
13/02/2011 14
Início
Condicional?
Fim
Comandos
não
sim
<?php
$n = 50;
$impar = 1;
do {
if($n < 0){
echo "O número deve ser maior que zero!";
break;
}
else {
echo "$impar <br />";
$impar+=2;
}
} while ($impar <= $n );
• Repetição
– Estrutura for
Estruturas de Controle
13/02/2011 15
Início
Condicional?
Fim
Inicia contador
não
sim
Algoritmo:
Esta estrutura aceita uma lista de
três expressões separadas por ponto
e vírgula. É a estrutura Para de um
algoritmo:
for(inicia; condição; incremento){
bloco-de-comandos
}
Comandos
Incrementa Contador
• Repetição
– Estrutura for
• Exemplo: imprimindo números pares:
– Todo número par tem o resto da divisão por 2 igual a zero!
Estruturas de Controle
13/02/2011 16
<?php
$n = 20;
echo 'Números pares de 0 a '.$n.':<br />';
for($i = 0; $i <= $n; $i++) {
if($i % 2 == 0) {
echo $i."<br />";
}
}
Saída: Números pares de 0 a 20: 0 2 4 6 8 10 12 14 16 18 20
• Repetição
– Estrutura for
Estruturas de Controle
13/02/2011 17
<?php // Média aritmética simples
$notas = array(10, 10, 5, 5); // Rol
$n = count($notas); // N
$media = 7.5 ; // Média a ser atingida
$mediaFinal = 0; // Média final
$soma = 0; // Soma de N elementos
for($i = 0; $i < $n; $i++) {
$soma += $notas[$i];
if($i == $n-1) {
$mediaFinal = $soma/$n;
echo "Média final: ".$mediaFinal;
if ($mediaFinal >= $media) {
echo "<br /> Aprovado!";
}
else {
echo "<br /> Recuperação!";
}
}
}
Saída: Média final: 7.5 Aprovado!
• Repetição
– Estrutura foreach
• Utilizado para leitura de arrays.
Estruturas de Controle
13/02/2011 18
<?php
$alunos = array(
'Evandro',
'Francisco',
'Ismael',
'Madson',
'Sérgio',
'Thaís'
);
echo 'Alunos do curso de PHP: <br />';
foreach ($alunos as $value) {
echo $value.'<br />';
}
Saída: Alunos do curso de PHP: Evandro Francisco Ismael Madson Sérgio Thaís