Bacharel em Ciência da Computação (UFG)
Especializando em Engenharia de Software
Analista de Sistemas – SIGMA / MDIC
Professor Formador EAD – NEAD/ETEB
george@georgemendonca.com.br
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ãosim
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

PHP 5.3 - Estruturas de Controle

  • 1.
    Bacharel em Ciênciada Computação (UFG) Especializando em Engenharia de Software Analista de Sistemas – SIGMA / MDIC Professor Formador EAD – NEAD/ETEB george@georgemendonca.com.br http://www.georgemendonca.com.br Estruturas de Controle
  • 2.
    • Condicionais – Sãoestruturas 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
  • 3.
    • Condicionais – Condicionalif 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"; }
  • 4.
    • Condicionais – Condicionalelse Estruturas de Controle 13/02/2011 4 Início Condicional ? Fim Comandos 2 nãosim 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"; }
  • 5.
    • Condicionais – Aninhamentode 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"; }
  • 6.
    • Condicionais – ifinline • É 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!
  • 7.
    • Condicionais – Condicionalswitch 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.
  • 8.
    • Condicionais – Condicionalswitch 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
  • 9.
    • Condicionais – Condicionalswitch 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
  • 10.
    • Repetição – Estruturasde 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
  • 11.
    • Repetição – Estruturawhile 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 }
  • 12.
    • Repetição – Estruturawhile 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++; }
  • 13.
    • Repetição – Estruturado 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);
  • 14.
    • Repetição – Estruturado 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 );
  • 15.
    • Repetição – Estruturafor 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
  • 16.
    • Repetição – Estruturafor • 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
  • 17.
    • Repetição – Estruturafor 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!
  • 18.
    • Repetição – Estruturaforeach • 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