Questão de Programação — Linguagens de programação — Avança SP 2024
- Código
- qg085781
- Banca
- Avança SP
- Órgão
- Prefeitura de Caçapava - SP
- Ano
- 2024
- Nível
- Médio
- Cargo
- Técnico em Informática
- Awhile
- Bdo...while
- Cfor
- Dforeach
- Eif
GabaritoC — for
Gabarito: letra C. A estrutura for é a mais adequada para executar um bloco de código repetidas vezes com base em uma condição de contagem, pois ela concentra em uma única linha a inicialização da variável de controle, a condição de parada e o incremento/decremento. As demais estruturas de repetição (while, do...while) também repetem blocos, mas são baseadas em condições lógicas gerais, não especificamente em contagem; foreach itera sobre coleções e if é uma estrutura de seleção, não de repetição.
As estruturas de repetição (também chamadas de laços ou loops) são fundamentais em qualquer linguagem de programação, pois permitem executar um bloco de código várias vezes sem precisar escrevê-lo manualmente. Elas se dividem em dois grandes grupos: as condicionais, que repetem enquanto uma condição lógica for verdadeira, e as incondicionais (ou com variável de controle), que repetem por um número determinado de vezes. O for pertence ao segundo grupo: ele é projetado exatamente para situações em que se sabe (ou se pode calcular) quantas repetições serão necessárias, usando uma variável contadora.
A sintaxe do for em PHP é:
for (inicialização; condição; incremento) {
// bloco de código
}Inicialização: executa uma vez, antes do laço (ex.: $i = 1).
Condição: verificada antes de cada iteração; se verdadeira, o bloco executa (ex.: $i <= 10).
Incremento: executado ao final de cada iteração (ex.: $i++).
Por exemplo, para imprimir os números de 1 a 5:
for ($i = 1; $i <= 5; $i++) {
echo $i;
}Aqui, a "condição de contagem" é clara: a variável $i começa em 1, vai até 5 e é incrementada a cada volta. É exatamente esse o cenário descrito no enunciado.
As outras estruturas de repetição têm propósitos diferentes:
while: repete enquanto uma condição for verdadeira, mas a condição pode ser qualquer expressão lógica, não necessariamente uma contagem. Ex.: while ($senha != "correta").
do...while: igual ao while, mas garante que o bloco execute ao menos uma vez, pois a condição é verificada no final.
foreach: itera sobre os elementos de um array ou objeto, sem controle explícito de contagem.
if: não é uma estrutura de repetição; é uma estrutura de seleção (condicional), que executa um bloco apenas uma vez se a condição for verdadeira.
A pegadinha desta questão está em distinguir o for (repetição com contagem) do while/do...while (repetição condicional). O enunciado usa a expressão "condição de contagem", que é a característica definidora do for. Guarde essa fronteira: for = contagem; while/do...while = condição lógica; foreach = coleção; if = seleção.
O while repete um bloco enquanto uma condição for verdadeira, mas essa condição não é necessariamente de contagem. Ele é mais adequado para situações em que não se sabe quantas repetições serão necessárias, como aguardar uma entrada do usuário. Embora seja possível usar while com um contador, o for é a estrutura projetada especificamente para isso.
O do...while é uma variação do while que garante a execução do bloco ao menos uma vez, pois a condição é verificada no final. Assim como o while, ele é baseado em uma condição lógica geral, não em contagem. A diferença crucial é que o bloco sempre executa pelo menos uma vez, o que não é o foco do enunciado.
O for é a estrutura de repetição com variável de controle, ideal para executar um bloco um número determinado de vezes. Sua sintaxe concentra inicialização, condição e incremento, tornando-a a escolha natural para "condição de contagem". É a resposta correta.
O foreach itera sobre os elementos de uma coleção (array ou objeto), sem controle explícito de contagem. Ele é usado para percorrer todos os elementos de uma estrutura de dados, não para repetir um bloco com base em um contador.
O if é uma estrutura de seleção (condicional), não de repetição. Ele executa um bloco de código apenas uma vez, se a condição for verdadeira. Não há laço, iteração ou contagem envolvidos.
Gabarito: letra C
Link permanente: /questoes/qg085781