Estruturas de Repetição e Controle em PHP
Olá, nesse artigo vou demonstrar os tipos de estruturas de controle e repetição que existem no PHP e comandos que se atrelem a esses importantes recursos de programação.
Estruturas de controle.
if/else.
A estrutura if / else, como na maioria das linguagens, é a mais utilizada, e no PHP não seria diferente.
Exemplo 1.1 – if/else.
<?php if ($var1 > $var2) { echo "var1 é maior que var2"; } else { echo "var1 NÃO é maior que var2"; } ?>
Nesse exemplo, SE a variável $var1 for maior do que a variável $var2, será impresso na tela “var1 é maior que var2”, SENÃO será impresso “var1 NÃO é maior que var2”.
O primeiro exemplo poderia ser reescrito de uma maneira alternativa como mostra o trecho abaixo.
Exemplo 1.2 – if/else alternativo.
<?php if ($variavel == 1):{ echo “variável = 1”; elseif ($variavel == 4): echo “variável = 4”; elseif ($variavel == ‘rodrigo’): echo “variável =rodrigo”; else: $variavel == “erro!”; endif ?>
No exemplo acima estamos utilizando uma maneira alternativa de escrita da estrutura. Nesse caso SE a variável $variavel for igual a ‘1’, será impresso “variável = 1”, SENÂO SE $variavel for igual a 4 então será impresso “variável = 4”, SENÂO SE $variavel for igual a ‘rodrigo’ então será o script terá como saída o texto ‘rodrigo’, SENÃO caso nenhuma dessas condições forem VERDADEIRAS (TRUE) será impresso na tela ‘erro!’.
Switch.
A estrutura de controle switch se comporta da mesma maneira de varios IFs seguidos. Muitas vezes o programador se depara tendo que comparar a mesma variável com alguns valores diferentes, e é ai entra a estrutura switch. Vou utilizar o exemplo 1.2 acima para demonstrar como é feita a implementação do switch case, como também é conhecido.
Exemplo 2.1 – Switch
<?php switch($variavel){ case 1: echo “variável = 0!!”; break; case 4: echo “variável = 4!!”; break; case ‘rodrigo’: echo “variável = rodrigo!!”; break; } ?>
Nesse caso a variável será testada com os valores 1, 4 e ‘rodrigo’, como não foi colocado um default, CASO nenhuma das condições forem verdadeiras o script não terá nenhum retorno. Vamos ver um exemplo com default.
Exemplo 2.2 – Switch e o comando defult
<?php switch($variavel){ case 1: echo “variável = 0!!”; break; case 4: echo “variável = 4!!”; break; case ‘rodrigo’: echo “variável = rodrigo!!”; break; default: echo “A variável não é igual a 0, 4 ou Rodrigo!!” } ?>
Nesse caso, mesmo todos as condições sendo false o script ira executar o trecho de código que está no default.
Estruturas de repetição.
While e suas variações.
A estrutura While são as mais simples estruturas de repetição. Seu comportamento é idêntico aos seus parentes em C, por exemplo. Sua sitaxe padrão é:
while (expressao) instruções
Essa instrução é executada ENQUANTO a expressão de controle for true, e esse teste é feito no começo do Loop, assim sendo, se o resultado da primeira verificação for false, as instruções não sao executadas nem uma vez.
Exemplo 3.1 – While.
<?php $i = 1; while ($i <= 10) { echo $i++; } ?>
Esse script imprimi na tela os números de 0 à 10. Quando a variável $i alcança o valor ‘11’, ao ser testada vai ser constatado que ela NÃO é MENOR nem IGUAL a 10 por tanto retorna false, não executando o código dentro do loop.
Exemplo 3.2 – While alternativo.
<?php $i = 1; while ($i <= 10): echo $i; $i++; endwhile; ?>
Uma forma alternativa que faz a mesma coisa que o exemplo anterior.
Do … While.
A estrutura do…while é quase idêntica que a while com a diferença que o teste da variável é feita no final da estrutura , ou seja, o código é executado pelo menos uma vez.
Exemplo 3.1 – Do … While.
<?php $i = 0; do { echo $i; } while ($i > 0); ?>
Nesse caso a variável $i seria impressa ao menos uma vez mesmo que o resultado da verificação seja false e não volta a executar o código.
Exemplo 3.2 – Do … While / Break.
<?php do { if ($i > 10) { echo "i é maior que 10"; } } while ($i > 10); ?>
No exemplo acima, temos a mesma estrutura que no exemplo anterior só que há um teste na variável de controle de repetição, e SE o resultado do mesmo for true será impresso a mensagem “i é maior que 10” ENQUANTO i for maior que 10, conforme a condição do laço de repetição.
FOR.
o for é a estrutura de repetição mais complexa que existe no PHP, como em quase todas as linguagens de programação. Sua sintaxe é:
for (expr1; expr2; expr3) instruções
A primeira instrução é executada incondicionalmente no começo do loop. A segunda é executada e se retornar true os comandos são executados, caso seja false o loop para sua execução. No final de cada loop, a terceira expressão é executada e são refeitos os testes anteriores.
Exemplo 4.1 – For
<?php for ($i = 0; $i <= 100; $i++) { echo $i; } ?>
Esse script imprime números de 0 até 100, de acordo com a segunda expressão do for.
Traduzindo: PARA i igual a zero, i maior ou igual a 100, incremente o i (some 1) e faça.
Cada uma das três expressões do for pode ser vazia, por exemplo, caso a segunda expressão for vazia, significa que o loop pode rodar infinitamente. Essa técnica é útil quando se utiliza o comando break para se interromper a repetição do bloco.
Exemplo 4.1 – For
<?php for ($i = 0; ; $i++) { if ($i > 10) { break; } echo $i; } ?>
Comando break .
O comando break que utilizei nos exemplo, INTERROMPE a execução de estruturas como o for, while, do…while e switch.
Esse comando aceita um valor numérico como parâmetro onde podemos definir o nível que queremos interromper a execução. Exemplo.
<?php $i = 0; while ($i< 25) { switch ($i) { case 5: echo "I = 5"; break 1; /* Sai somente do switch. */ case 10: echo "No 10; saindo<br />\n"; break 2; /* Sai do switch e while. */ default: break; } } ?>
Comando Continue.
O comando continue PULA o loop atual para recomeçar a execução da próxima estruturas como o for, while, do…while e switch.
Esse comando aceita um valor numérico como parâmetro onde podemos definir o nível de loops ele saltará até o fim. Exemplo.
<?php $i = 0; while ($i++ < 5) { echo "Primeiro\n"; while (1){ echo "Segundo\n"; while (1){ echo "Terceiro\n"; continue 3; } echo "Isto NUNCA será exibido.\n"; } echo "Isso tambem NÃO será exibido.\n"; } ?>
Muito bom o Artigo, bem explicado, pra quem está começando esse artigo é um prato cheio.
Abraço!
Vinicius(Citar)
poxa,achei esse blog muito bacana,além para min que tenho prova de algoritmo hoje na faculdade ai esse blog ele já dá uma noção de como é esse processo.
Márcio Henrique Muzy Freitas(Citar)
Muito bom!Tirei um bom proveito!
josé carlos(Citar)