1-PHP Introdução
Exercícios
Curso Banco Dados
IntroducaoBD.php

Cap. 1 - Introdução ao PHP

1.3 - Repetições

Objetivo: Apresentar as principais estruturas de Repetições.

Conteúdo da Aula:


Introdução

Nessa aula veremos as estruturas de controle. Na verdade, na aula anterior já vimos duas: IF e Switch, que são estruturas de decisão, mas que estão relacionadas com o controle de fluxo do programa. Nessa aula focaremos nas estruturas de repetição for e while.

1. Estruturas de Controle

Como visto anteriormente (e no nosso curso de C) as estruturas de controle de uma linguagem definem o fluxo do programa. Genericamente elas podem ser divididas em estruturas de decisão e estruturas de repetição.

2. Comando For

É uma estrutura de controle baseado em um contador. Assim como em C, o for é controlado por um bloco de três comandos. Veja a estrutura a seguir.

for(expr1;expr2;expr3)
{
comandos
}
sendo

expr1 valor inicial da variável contadora
expr2 condição de execução. Enquanto for TRUE o bloco de comandos será executado
expr3 valor a ser incrementado após cada execução

Exemplo

<?php
for($i=0;$i<5;$i++)
{
print $i;
}
?>

3. Comando While

Assim como em C, a estrutura while é uma estrutura de repetição que executa comandos enquanto a expressão de teste for verdadeira

.

Veja a definição do while em PHP

while(expressão)
{
comandos
}

Exemplo

Veja nos dois exemplos a seguir que podemos usar chaves ou o par while-endwhile.
<?php
/* example 1 */

$i 1;
while (
$i <= 10) {
    echo 
$i++;  /* the printed value would be
                   $i before the increment
                   (post-increment) */
}

/* example 2 */

$i 1;
while (
$i <= 10):
    echo 
$i;
    
$i++;
endwhile;
?>

3.1 Comando do-While

Assim como em C, PHP possui a opção de se fazer a repetição com do-While. Veja o exemplo a seguir.

<
<?php
$i 
0;
do {
    echo 
$i;
} while (
$i 0);
?>

Exemplo de do-while com break



<?php
do {
    if (
$i 5) {
        echo 
"i is not big enough";
        break;
    }
    
$i *= $factor;
    if (
$i $minimum_limit) {
        break;
    }
   echo 
"i is ok";

    
/* process i */

} while (0);
?>

4. Foreach, Continue e Break

Nessa seção são apresentadas outras estruturas de controle.

Foreach

É um laço de repetição para iterações em arrays (vetores e matrizes). É um for simplificado que decompõe um array nos seus componentes.

Veja o exemplo a seguir

<?php
$fruta = array("maca","laranja","pera","banana");
foreach($fruta as $valor)
{
print $valor;
}
?>

Continue

A palavra reservada continue é usada dentro de um bloco de comandos for ou while. Quando encontrada, o programa ignora as instruções seguintes até a }.

Break

A palavra reservada break é usada dentro de um bloco de comandos if, for ou while. Quando encontrada, o programa aborta o laço em que a palvara está.

Exemplo usando break



<?php
$arr 
= array('one''two''three''four''stop''five');
while (list(, 
$val) = each($arr)) {
    if (
$val == 'stop') {
        break;    
/* You could also write 'break 1;' here. */
    
}
    echo 
"$val<br />\n";
}

/* Using the optional argument. */

$i 0;
while (++
$i) {
    switch (
$i) {
    case 
5:
        echo 
"At 5<br />\n";
        break 
1;  /* Exit only the switch. */
    
case 10:
        echo 
"At 10; quitting<br />\n";
        break 
2;  /* Exit the switch and the while. */
    
default:
        break;
    }
}
?>

Veja mais exemplos sobre break e continue na seção "exemplos", mais adiante nessa página

5. Exemplos

Exemplo 1


<?php
$arr 
= array(1234);
foreach (
$arr as &$value) {
    
$value $value 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // break the reference with the last element
?>

Exemplo 2

  
<?php
foreach (array(1234) as &$value) {
    
$value $value 2;
}

?>

Exemplo 3

  
  
<?php
$arr 
= array("one""two""three");
reset($arr);
while (list(, 
$value) = each($arr)) {
    echo 
"Value: $value<br />\n";
}

foreach (
$arr as $value) {
    echo 
"Value: $value<br />\n";
}
?>
<

Exemplo 4

O exemplo seguinte faz a mesma coisa que o anterior.

<?php
$arr 
= array("one""two""three");
reset($arr);
while (list(
$key$value) = each($arr)) {
    echo 
"Key: $key; Value: $value<br />\n";
}

foreach (
$arr as $key => $value) {
    echo 
"Key: $key; Value: $value<br />\n";
}
?>

Exemplo 5: Vários exemplos usando foreach


<?php
/* foreach example 1: value only */

$a = array(12317);

foreach (
$a as $v) {
    echo 
"Current value of \$a: $v.\n";
}

/* foreach example 2: value (with its manual access notation printed for illustration) */

$a = array(12317);

$i 0/* for illustrative purposes only */

foreach ($a as $v) {
    echo 
"\$a[$i] => $v.\n";
    
$i++;
}

/* foreach example 3: key and value */

$a = array(
    
"one" => 1,
    
"two" => 2,
    
"three" => 3,
    
"seventeen" => 17
);

foreach (
$a as $k => $v) {
    echo 
"\$a[$k] => $v.\n";
}

/* foreach example 4: multi-dimensional arrays */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach (
$a as $v1) {
    foreach (
$v1 as $v2) {
        echo 
"$v2\n";
    }
}

/* foreach example 5: dynamic arrays */

foreach (array(12345) as $v) {
    echo 
"$v\n";
}
?>

Exemplo 6: "continue"



<?php
while (list($key$value) = each($arr)) {
    if (!(
$key 2)) { // skip odd members
        
continue;
    }
    
do_something_odd($value);
}

$i 0;
while (
$i++ < 5) {
    echo 
"Outer<br />\n";
    while (
1) {
        echo 
"&nbsp;&nbsp;Middle<br />\n";
        while (
1) {
            echo 
"&nbsp;&nbsp;Inner<br />\n";
            continue 
3;
        }
        echo 
"This never gets output.<br />\n";
    }
    echo 
"Neither does this.<br />\n";
}
?>

Veja mais detalhes sobre o comando continue no site php.net


6. Exercícios de Revisão

1. Executando os Exemplos

Nessa página foram apresentados vários exemplos com programas PHP. Execute-os. Estude-os e entenda todos eles. Traduza as frases de cada programa. Os exemplos foram tirados da página php.net e estão em inglês. Ao traduzir (os comentários e as frases) você entenderá melhor o que cada um faz.

2. Programa em PHP

Faça um programa em PHP para converter números decimais em binários. Especifique as restrições do seu programa. Por enquanto, a entrada deverá ser feita dentro do próprio programa. Ainda não aprendemos como entrar dados em PHP. Faça o programa de duas formas:

  • sem usar array
  • usando array

Referências

voltar ao início da página