php 5.3 - estruturas de controle

18
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

Upload: george-mendonca

Post on 12-Feb-2017

2.183 views

Category:

Education


1 download

TRANSCRIPT

Page 1: PHP 5.3 - Estruturas de Controle

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

Page 2: PHP 5.3 - 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

Page 3: PHP 5.3 - Estruturas de Controle

• 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";

}

Page 4: PHP 5.3 - Estruturas de Controle

• 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";

}

Page 5: PHP 5.3 - Estruturas de Controle

• 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";

}

Page 6: PHP 5.3 - Estruturas de Controle

• 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!

Page 7: PHP 5.3 - Estruturas de Controle

• 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.

Page 8: PHP 5.3 - Estruturas de Controle

• 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

Page 9: PHP 5.3 - Estruturas de Controle

• 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

Page 10: PHP 5.3 - Estruturas de Controle

• 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

Page 11: PHP 5.3 - Estruturas de Controle

• 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

}

Page 12: PHP 5.3 - Estruturas de Controle

• 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++;

}

Page 13: PHP 5.3 - Estruturas de Controle

• 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);

Page 14: PHP 5.3 - Estruturas de Controle

• 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 );

Page 15: PHP 5.3 - Estruturas de Controle

• 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

Page 16: PHP 5.3 - Estruturas de Controle

• 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

Page 17: PHP 5.3 - Estruturas de Controle

• 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!

Page 18: PHP 5.3 - Estruturas de Controle

• 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