Questão de Programação — Programação estruturada — Avança SP 2023
- Código
- qq839087
- Banca
- Avança SP
- Órgão
- SAAE de Amparo - SP
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista de Sistemas da Informação
- AIf.
- BWhile.
- CDo While.
- DFor.
- EUntil.
GabaritoA — If.
Gabarito: letra A. O comando if é a estrutura condicional por excelência na programação estruturada: ele avalia uma condição lógica e, com base no resultado (verdadeiro ou falso), decide qual bloco de código será executado. As demais alternativas (while, do while, for e until) são todas estruturas de repetição, responsáveis por executar um bloco de código várias vezes, e não por tomar decisões.
A programação estruturada, paradigma que organiza o código em blocos lógicos e legíveis, fundamenta-se em três estruturas de controle básicas: sequência, decisão (condicional) e iteração (repetição). A estrutura sequencial executa comandos um após o outro, linearmente. A estrutura de decisão, também chamada de seleção ou condicional, permite que o programa escolha entre diferentes caminhos de execução com base em uma condição — é exatamente o papel do comando if. Já a estrutura de iteração, ou repetição, faz com que um trecho de código seja executado repetidamente enquanto (ou até que) uma condição seja satisfeita — é o papel dos comandos while, do while, for e until.
A confusão mais comum neste tema é tratar todos os comandos que envolvem uma condição como "condicionais". No entanto, a diferença é fundamental: na estrutura condicional, a condição decide se um bloco será executado (uma vez); na estrutura de repetição, a condição decide quantas vezes um bloco será executado (zero, uma ou várias vezes). O while, por exemplo, verifica a condição antes de cada execução do bloco, repetindo-o enquanto a condição for verdadeira — é uma repetição, não uma decisão. O for é um laço contado, ideal quando se sabe quantas vezes o bloco deve ser repetido. O do while garante que o bloco seja executado ao menos uma vez, pois a condição é verificada após a execução. O until (até que) repete o bloco até que a condição se torne verdadeira. Todos esses comandos pertencem à categoria de iteração.
Para fixar: a pergunta que separa as estruturas é "o código decide um caminho OU repete um trecho?". Se a resposta for "decide", é condicional (if); se for "repete", é iteração (while, do while, for, until). É exatamente esse critério que vamos aplicar a cada alternativa.
O comando if é a estrutura condicional fundamental. Ele avalia uma expressão lógica (condição) que resulta em verdadeiro ou falso e, com base nesse resultado, executa ou não um determinado bloco de código. Pode ser combinado com else e else if para criar múltiplos caminhos de decisão, mas sua essência é sempre a mesma: tomar uma decisão com base em uma condição. É o comando que materializa a estrutura de decisão na programação estruturada.
O while é uma estrutura de repetição, não condicional. Ele verifica a condição antes de executar o bloco e o repete enquanto a condição for verdadeira. Se a condição for falsa logo no início, o bloco pode nem ser executado. A pegadinha aqui é que o while também usa uma condição, mas a usa para controlar a repetição, não para decidir entre caminhos.
O do while também é uma estrutura de repetição. Sua característica distintiva é que o bloco de código é executado ao menos uma vez, pois a condição é verificada somente após a primeira execução. É útil para situações em que se garante a execução inicial, como menus interativos, mas continua sendo iteração, não decisão.
O for é uma estrutura de repetição com contador. É ideal quando se sabe exatamente quantas vezes o bloco deve ser repetido, pois combina inicialização, condição de parada e atualização em uma única sintaxe. Apesar de conter uma condição de parada, sua função é iterar, não decidir.
O until (até que) é uma estrutura de repetição que executa o bloco até que uma condição se torne verdadeira. É o inverso lógico do while (que repete enquanto a condição for verdadeira). Está presente em algumas linguagens como alternativa ao while, mas continua sendo iteração.
A banca explora a confusão entre "comando que usa condição" e "estrutura condicional". Todos os comandos de repetição (while, do while, for, until) também avaliam condições, mas a finalidade é completamente diferente: a condição no if decide qual caminho seguir; a condição nos laços decide quantas vezes repetir. Guarde a pergunta-chave: "o código decide ou repete?" — se repete, não é condicional.
Gabarito: letra A — apenas o comando if é uma estrutura condicional; os demais são estruturas de repetição.
Link permanente: /questoes/qq839087