Upload
dangthuan
View
213
Download
0
Embed Size (px)
Citation preview
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Linguagem de Programação III
Estruturas de Controle em PHP
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Estruturas de Controle em PHP
- Comandos condicionais- if- switch
- Comandos de repetição- while- do...while- for- foreach
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Estruturas de Controle em PHP
- Controle de fluxo de repetições- break- continue
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando condicional if
<?php
if (expressao1) { bloco1 };
elseif (expressao2) { bloco2 }; else { bloco3 };
?>
Uso do if com { }
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando condicional if<?php
$prova1 = 7; $prova2 = 5;
$nota = ($prova1+$prova2) / 2;
if ($nota<3) $desempenho = "PÉSSIMO"; elseif ($nota<5) $desempenho = "RUIM"; elseif ($nota<7) $desempenho = "MÉDIO"; elseif ($nota<9) $desempenho = "BOM"; else $desempenho = "EXCELENTE";
echo "O seu desempenho foi $desempenho";
?>
Uso do if sem { }
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando condicional if<?php
$prova1 = 7; $prova2 = 5;
$nota = ($prova1+$prova2) / 2;
if ($nota<3) $desempenho = "PÉSSIMO"; elseif ($nota<5) $desempenho = "RUIM"; elseif ($nota<7) $desempenho = "MÉDIO"; elseif ($nota<9) $desempenho = "BOM"; else $desempenho = "EXCELENTE";
echo "O seu desempenho foi $desempenho";
?>
$desempenho= ????
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando condicional if
<?php
if ($nota == 10) { echo "Parabéns! <br>"; echo "Você tirou a nota máxima!"; }
?>
if sem else
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando condicional if
<?php
if (expressao1): bloco1
elseif (expressao2):bloco2
else:bloco3
endif;
?>
Uso do endif
- não é necessário o uso de { }
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando condicional switch
<?phpswitch (operador){
case valor1:<comandos>break;
case valor1:<comandos>break;
?>
- observe o uso do break- sem ele, o PHP continuaria avaliando as demais expressões
- mesmo uso do case- deixa o código mais limpo e organizado
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comparação do if com o switch
<?php
if ($numero == 0) {echo “número vale 0”;
}elseif ($numero == 1) { echo “número vale 1”;}elseif ($numero == 2) { echo “número vale 2”;}
?>
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comparação do if com o switch
<?php
switch ($numero){ case 0: echo "número vale 0"; break; case 1: echo "número vale 1"; break; case 2: echo "número vale 2"; break;}
?>
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Uso do switch com default<?php// $opcao = "s";switch ($opcao){ case 's': echo "Você escolheu a opção SIM"; break; case 'n': echo " Você escolheu a opção NÃO"; break; default: echo " A opção digitada é inválida"; break; }?>
- mesma função do elseif- uso não obrigatório
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição while
<?php
while (expressao) { comandos }
?>
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição while
<?php
while (expressao): comandos
endwhile;?>
- loop infinito – expressões que nunca se tornarão falsas
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição while
<?php
$cont = 1;
while ($cont<100) { echo "O valor atual do contador é $cont <br>"; $cont++; }
?>
O valor atual do contador é 1O valor atual do contador é 2…O valor atual do contador é 99
- loop infinito – $cont!=0
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição do...while
<?php
$numero = 1;
do { echo "O valor atual de número é $numero <br>"; $numero++;
} while ($numero<4);
?>
- while – avalia no início do laço
- do...while – avalia no final do laço – executa o laço pelo menos uma vez
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição do...while
<?php
$numero = 1;
do { echo "O valor atual de número é $numero <br>"; $numero++;
} while ($numero<4);
?>
O valor atual de número é 1O valor atual de número é 2O valor atual de número é 3
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição for<?php
for( inicializacao ; condicao ; operador ){
comandos}
<?php
for( inicializacao ; condicao ; operador ):comandos
endfor;
OU
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição for
<?php
for($cont=0 ; $cont<10 ; $cont++) { echo "A variável \$cont vale $cont"; echo "<br>"; }
?>
Qual o resultado da execução deste programa?
Incremento
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição for
<html><body><?php echo "Estou fazendo uma contagem regressiva: <br>"; for($i=15 ; $i>=0 ; $i--) { echo $i . ", "; } echo "... FIM!";?></body></html>
Estou fazendo uma contagem regressiva:15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, … FIM!
Decremento
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Aninhamento de loops<?php
$vetor[0][0]= "elemento00";$vetor[0][1]= "elemento01";$vetor[1][0]= "elemento10";$vetor[1][1]= "elemento11";
for($i=0 ; $i<2 ; $i++){
for($k=0 ; $k<2 ; $k++){
echo "O elemento da posição $i,$k é ";echo $vetor [$i][$k] . "<br>";
}}
?>
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Inicialização de mais de um parâmetro
<?php
for( $i=0, $k=10 ; $i<10 ; $i++, $k-- ) { echo "\$i vale $i e \$k vale $k";
if ($i==$k) { echo " (os valores são iguais!)"; }
echo "<br>"; }?>
Implementar este programa!
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição foreach
foreach ($nome_array as $elemento){ comandos}
- vai do primeiro ao último índice definido por $nome_array
- a cada iteração o valor do array é atribuído ao valor $elemento
- trabalha-se todos os valores do array somente com $elemento
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição foreach
foreach ($nome_array as $chave => $valor){ comandos}
- vai do primeiro ao último índice definido por $nome_array
- a cada iteração o valor do array é atribuído ao valor $elemento
- a cada iteração o valor do índice é atribuído ao valor $chave
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Comando de repetição foreach
<?php
$vetor = array (1, 2, 3, 4); foreach ($vetor as $v){ print "O valor atual do vetor é $v. <br>";}
$a = array ( "um" => 1, "dois" => 2, "tres" => 3 ); foreach($a as $chave => $valor) { print "\$a[$chave] => $valor.<br>"; }
?>
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Controle de fluxo de execução - break
<?php
$k = 1;
while ($k < 20) { if ($vetor[$k] == "sair") { break; }
echo $vetor[$k] . "<br>";
$k++;}
?>
- for, foreach, while, switch
- passa para o primeiro comando após o término da estrutura
Laço será encerrado
- se $k >= 20
- se algum elemento do vetor for “sair"
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Controle de fluxo de execução - break<?php
$i = 0;$k = 0;while ($k < 10){
$i++;$k++;while ($i < 20){
if($i==10) {
echo "Encerrando o primeiro while...<br>";break ;echo " Essa linha não vai ser impressa!!!";
}elseif ($i==15){
echo "Encerrando os dois whiles...";break 2;
}$i++;
}}?>
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Controle de fluxo de execução - continue
<?php
$vetor = array (1, 3, 5, 8, 11, 12, 15, 20);
for($i=0 ; $i<sizeof($vetor) ; $i++){ if ($vetor[$i] % 2 != 0) // é ímpar { continue; }
$num_par = $vetor[$i]; echo "O número $num_par é par. <br>";}
?>
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Funções em PHP<?php
function nome_funcao(arg1, arg2, arg3 …, argn){
comandos[ return <expressao> ]
}
?>
- nome_funcao – identificador- não pode iniciar com número- não usar caracteres ponto, vírgula, espaço, etc- usa-se o _
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Funções em PHP<?php
function nome_funcao(arg1, arg2, arg3 …, argn){
comandos[ return <expressao> ]
}
?>
- arg1, arg2, arg3 – argumentos- valores recebidos no momento da chamada- sua utilização é opcionalfunction nome_funcao( )
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Funções em PHP
- return – opcional
- utilizado para atribuir um valor a uma variável
- utilizado para testar o valor de retorno de uma função
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Funções em PHP
<?php function maiusculo($string) { $string = strtoupper ($string); $string = str_replace ("á", "Á", $string); $string = str_replace ("é", "É", $string); $string = str_replace ("í", "Í", $string); $string = str_replace ("ó", "Ó", $string); $string = str_replace ("ú", "Ú", $string); $string = str_replace ("â", "Â", $string); $string = str_replace ("ê", "Ê", $string); $string = str_replace ("ô", "Ô", $string); $string = str_replace ("Î", "I", $string); $string = str_replace ("Û", "U", $string); $string = str_replace ("ã", "Ã", $string); $string = str_replace ("õ", "Õ", $string); $string = str_replace ("ç", "Ç", $string); $string = str_replace ("à", "A", $string); return $string; } $nome = "José Antônio"; $nome_m = maiusculo ($nome); echo "O nome do rapaz é $nome_m";?>
Utilização do return
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Funções em PHP
<?php
function triplo ($numero) { $x = $numero * 3; return $x; }
$valor = 5; echo "O triplo de $valor é " . triplo($valor);
?>
Utilização do return
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Funções em PHP<?php
function soma_valores ($valor1 , $valor2 , $valor3){
$soma = $valor1 + $valor2 + $valor3;echo "A soma dos valores $valor1, $valor2 e $valor3 ";echo "é $soma";
}$n1 = 10;$n2 = 20;$n3 = 50;soma_valores ($n1, $n2, $n3);
?>
- variáveis passadas não precisar ter o mesmo nome dos argumentos
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Funções em PHP
<?php function clubes ( ) { $clubes [ ] = "Grêmio"; $clubes [ ] = "Palmeiras"; $clubes [ ] = "Flamengo"; $clubes [ ] = "Atlético"; return $clubes; } // início do programa principal $nomes = clubes( );
for ($i=0 ; $i < sizeof($nomes) ; $i++) { echo "\$nomes[$i] vale $nomes[$i] <br>"; }?>
Retorno de array
O retorno seria:$nomes[0] vale Grêmio$nomes[1] vale Palmeiras$nomes[2] vale Flamengo$nomes[3] vale Atlético
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Passagem de parâmetros
<?php function dobro ($valor) { $valor = 2 * $valor; } function duplica (&$valor) { $valor = 2 * $valor; } $valor = 5; dobro ($valor); echo $valor . "<br>"; duplica ($valor); echo $valor;?>
- passagem de parâmetros por valor – variáveis passadas não tem seu valor alterado - passagem de parâmetros por referência – variáveis passadas como argumento são alteradas durante a execução da função (uso do &)
O resultado seria:
510
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Passagem de parâmetros
<?php
function teste ($time , $titulo = "Campeão Paranaense.") { echo "O $time é $titulo <br>"; }
teste ("Flamengo" , "Campeão Carioca."); teste ("Atlético MG" , "Campeão Mineiro."); teste ("Atlético PR");
?>
O Flamengo é Campeão Carioca.O Atlético MG é Campeão Mineiro.O Atlético PR é Campeão Paranaense.
Uso de valores-padrão para parâmetros
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Funções recursivas
<?php
function teste ($valor) { if ($valor!=0) { echo "Foi chamada a função teste passando o valor $valor <br>"; teste ($valor-1); } }
teste (7);
?>
Foi chamada a função teste passando o valor 7Foi chamada a função teste passando o valor 6…Foi chamada a função teste passando o valor 1
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Funções recursivas
<?php
function fatorial ($numero) { if ($numero<0) { return -1; }
if($numero<=1) { return 1; }
return $numero*fatorial($numero-1); }
echo "O fatorial de 3 é " . fatorial(3); echo "<br>O fatorial de 4 é " . fatorial(4); echo "<br>O fatorial de 5 é " . fatorial(5);
?>
Fatorial
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Chamada Retorno
1a 5 * fatorial(4)
2a 4 * fatorial(3)
3a 3 * fatorial(2)
4a 2 * fatorial(1)
5a 1
Funções recursivasFatorial
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Reutilização de funções
Uso do comando
include
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Exercícios
<html><title>Aula de Linguagem de Programação III</title><body>
<?phpcomandos
?></body>
</html>
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
Exercícios1. Efetue um algorítmo PHP que receba os valores 12, 6, 8, 33 e imprima o texto "o valor é maior que 10" caso isso seja verdade, senão imprima "o valor é menor que 10".Exemplo: O valor 12 é maior que 10.
2. Efetue um algoritmo em PHP que receba o valor 21 e imprima os valores de 0 até o valor recebido.Exemplo: 0, 1, 2..., 20.
3. Efetue um algorítmo PHP que receba os valores A, B e imprima-os em ordem crescente em relação aos seus valores. A=5 e B=4Você deve imprimir na tela: "4 5".
4. Efetue um algorítmo PHP que receba quatro notas de um aluno, calcule e imprima a média aritmética das notas e a mensagem de aprovado para média superior ou igual a 7.0 ou a mensagem de reprovado para média inferior a 7.0.As notas são 6.8, 5.9, 8.4 e 7.1Exemplo: A média é 5,6. O aluno está reprovado.
5. Efetue um algorítmo PHP que receba dois valores e imprima todos os valores intermediários a ele:Primeiro Valor = 5Segundo Valor = 15Imprime: 6 7 8 9 10 11 12 13 14
Prof Mauricio Lederer Análise e Desenvolvimento de Sistemas - UNIANDRADE
ExercíciosEfetue um algorítmo PHP que receba os valores A, B, C e D. Efetue a soma entre A e C,a multiplicação entre B e D e verifique se o resultado da soma é maior, menor ou igual ao da multiplicação. Imprima: "A+C é maior que B+D", "A+C é menor que B+D", "A+C é igual a B+D".
<?php$valorA = 5;$valorB = 2;$valorC = 4;$valorD = 9;function somar($a, $c) {
$resultAC = $a + $c;return $resultAC;
} function mult($b, $d) {
$resultBD = $b * $d;return $resultBD;
} echo somar($valorA, $valorC) . "<br>";
echo mult($valorB, $valorD); if(somar($valorA,$valorC) > mult($valorB,$valorD)) //testa se é maior
echo "A+C é maior que B+D";else{ //senãoif(somar($valorA,$valorC) < mult($valorB,$valorD)) //testa se é menor
echo "A+C é menor que B+D";else //senão
echo "A+C é igual que B+D"; //se não for maior e menor, então são iguais. }?>