Linguagem de Programação III Estruturas de Controle em PHP
Estruturas de Controle em PHP - Comandos condicionais - if - switch - Comandos de repetição - while - do...while - for - foreach
Estruturas de Controle em PHP - Controle de fluxo de repetições - break - continue
Comando condicional if if (expressao1) bloco1 ; elseif (expressao2) bloco2 ; else bloco3 ; Uso do if com
Comando condicional if $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"; Uso do if sem echo "O seu desempenho foi $desempenho";
Comando condicional if $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"; $desempenho=???? echo "O seu desempenho foi $desempenho";
Comando condicional if if sem else if ($nota == 10) echo "Parabéns! <br>"; echo "Você tirou a nota máxima!";
Comando condicional if Uso do endif - não é necessário o uso de if (expressao1): bloco1 elseif (expressao2): bloco2 else: bloco3 endif;
Comando condicional switch - mesmo uso do case - deixa o código mais limpo e organizado switch (operador) case valor1: <comandos> break; case valor1: <comandos> break; - observe o uso do break - sem ele, o PHP continuaria avaliando as demais expressões
Comparação do if com o switch if ($numero == 0) echo número vale 0 ; elseif ($numero == 1) echo número vale 1 ; elseif ($numero == 2) echo número vale 2 ;
Comparação do if com o switch 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;
Uso do switch com default // $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
Comando de repetição while while (expressao) comandos
Comando de repetição while while (expressao): comandos endwhile; - loop infinito expressões que nunca se tornarão falsas
Comando de repetição while $cont = 1; while ($cont<100) echo "O valor atual do contador é $cont <br>"; $cont++; O valor atual do contador é 1 O valor atual do contador é 2 O valor atual do contador é 99 - loop infinito $cont!=0
Comando de repetição do...while - while avalia no início do laço - do...while avalia no final do laço executa o laço pelo menos uma vez $numero = 1; do echo "O valor atual de número é $numero <br>"; $numero++; while ($numero<4);
Comando de repetição do...while $numero = 1; do echo "O valor atual de número é $numero <br>"; $numero++; while ($numero<4); O valor atual de número é 1 O valor atual de número é 2 O valor atual de número é 3
Comando de repetição for for( inicializacao ; condicao ; operador ) comandos OU for( inicializacao ; condicao ; operador ): comandos endfor;
Comando de repetição for Incremento for($cont=0 ; $cont<10 ; $cont++) echo "A variável \$cont vale $cont"; echo "<br>"; Qual o resultado da execução deste programa?
Comando de repetição for Decremento <html> <body> 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!
Aninhamento de loops $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>";
Inicialização de mais de um parâmetro 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!
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
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
Comando de repetição foreach $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>";
Controle de fluxo de execução - - for, foreach, while, switch break - passa para o primeiro comando após o término da estrutura $k = 1; while ($k < 20) if ($vetor[$k] == "sair") break; - se $k >= 20 Laço será encerrado - se algum elemento do vetor for sair" echo $vetor[$k]. "<br>"; $k++;
Controle de fluxo de execução - break $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++;
Controle de fluxo de execução - continue $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>";
Funções em 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 _
Funções em PHP function nome_funcao(arg1, arg2, arg3, argn) comandos [ return <expressao> ] - arg1, arg2, arg3 argumentos - valores recebidos no momento da chamada - sua utilização é opcional function nome_funcao( )
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
Funções em PHP Utilização do return 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";
Funções em PHP Utilização do return function triplo ($numero) $x = $numero * 3; return $x; $valor = 5; echo "O triplo de $valor é ". triplo($valor);
Funções em 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
Funções em PHP Retorno de array function clubes ( ) $clubes [ ] = "Grêmio"; $clubes [ ] = "Palmeiras"; $clubes [ ] = "Flamengo"; $clubes [ ] = "Atlético"; return $clubes; // início do programa principal $nomes = clubes( ); O retorno seria: $nomes[0] vale Grêmio $nomes[1] vale Palmeiras $nomes[2] vale Flamengo $nomes[3] vale Atlético for ($i=0 ; $i < sizeof($nomes) ; $i++) echo "\$nomes[$i] vale $nomes[$i] <br>";
Passagem de parâmetros - 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 &) function dobro ($valor) $valor = 2 * $valor; function duplica (&$valor) $valor = 2 * $valor; $valor = 5; dobro ($valor); echo $valor. "<br>"; duplica ($valor); echo $valor; O resultado seria: 5 10
Passagem de parâmetros Uso de valores-padrão para parâmetros 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.
Funções recursivas 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 7 Foi chamada a função teste passando o valor 6 Foi chamada a função teste passando o valor 1
Funções recursivas Fatorial 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);
Funções recursivas Fatorial Chamada Retorno 1 a 5 * fatorial(4) 2 a 4 * fatorial(3) 3 a 3 * fatorial(2) 4 a 2 * fatorial(1) 5 a 1
Reutilização de funções Uso do comando include
Exercícios <html> <title>aula de Linguagem de Programação III</title> <body> comandos </body> </html>
Exercícios 1. 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=4 Você 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.1 Exemplo: 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 = 5 Segundo Valor = 15 Imprime: 6 7 8 9 10 11 12 13 14
Exercícios Efetue 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". $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ão if(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.