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: 3O 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.
Desafio
FácilLeia 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;
?>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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators