Menu
Coddy logo textTech

Laço While

Parte da seção Fundamentos do Journey de PHP da Coddy — lição 48 de 71.

Embora o for loop funcione muito bem quando você sabe o número exato de iterações, o while loop é perfeito quando você quer continuar iterando até que uma condição se torne falsa.

Um loop while verifica sua condição antes de cada iteração. Se a condição for verdadeira, o código dentro executa. Isso continua até que a condição se torne falsa.

<?php
$count = 1;

while ($count <= 3) {
    echo "Count: $count\n";
    $count++;
}
?>

Isso produz:

Count: 1
Count: 2
Count: 3

O loop começa verificando se $count <= 3. Como é verdadeiro, o código executa e incrementa $count. Quando $count atinge 4, a condição falha e o loop para.

Importante: Sempre garanta que algo dentro do loop eventualmente torne a condição falsa. Caso contrário, você criará um loop infinito que nunca para de executar.

<?php
$total = 0;
$num = 1;

while ($total < 10) {
    $total += $num;
    $num++;
}

echo $total;
?>

Isso continua adicionando números até que o total atinja ou exceda 10, então exibe o valor final.

challenge icon

Desafio

Fácil

Leia um único inteiro da entrada representando uma soma alvo.

Use um loop while para adicionar números consecutivos começando de 1 (1, 2, 3, 4, ...) até que o total atinja ou exceda a soma alvo.

Imprima o total final na primeira linha, e o último número que foi adicionado na segunda linha.

Exemplo 1:

Se a entrada for 10, a saída deve ser:

10
4

(1 + 2 + 3 + 4 = 10, que atinge o alvo)

Exemplo 2:

Se a entrada for 15, a saída deve ser:

15
5

(1 + 2 + 3 + 4 + 5 = 15)

Exemplo 3:

Se a entrada for 7, a saída deve ser:

10
4

(1 + 2 + 3 + 4 = 10, que excede 7)

Folha de consulta

Um while loop verifica uma condição antes de cada iteração e continua executando até que a condição se torne falsa.

Sintaxe básica:

<?php
$count = 1;

while ($count <= 3) {
    echo "Count: $count\n";
    $count++;
}
?>

O loop verifica se $count <= 3 antes de cada iteração. Quando a condição se torna falsa, o loop para.

Importante: Sempre garanta que algo dentro do loop eventualmente torne a condição falsa para evitar loops infinitos.

Exemplo com acumulação:

<?php
$total = 0;
$num = 1;

while ($total < 10) {
    $total += $num;
    $num++;
}

echo $total;
?>

Experimente você mesmo

<?php
// Leia a soma alvo
$target = intval(fgets(STDIN));

// Inicialize as variáveis
$total = 0;
$num = 0;

// TODO: Escreva seu código aqui
// Use um loop while para adicionar números consecutivos (1, 2, 3, ...)
// até que o total atinja ou exceda o alvo


// Saída do total final e do último número adicionado
echo $total . "\n";
echo $num;
?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos