Cap. 1 - Introdução ao PHP
1.3 - Repetições
Objetivo: Apresentar as principais estruturas de Repetições.Conteúdo da Aula:
- 1. Estrutura de Controle
- 2. Comando For
- 3. Comando While e do-While
- 4. Foreach, Continue e Break
- 5. Exemplos
- 6. Exercícios
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(1, 2, 3, 4);
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(1, 2, 3, 4) 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(1, 2, 3, 17);
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(1, 2, 3, 17);
$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(1, 2, 3, 4, 5) 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 " Middle<br />\n";
while (1) {
echo " 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