Durante a implementação de um sistema de monitoramento contínuo, utilizou-se uma estrutura de repetição while para verificar constantemente o estado de sensores. A lógica da aplicação exige que o código avalie a condição de parada de forma segura para evitar execuções ininterruptas. O controle adequado da repetição é essencial para garantir a estabilidade e o uso eficiente dos recursos computacionais. Diante do tema, assinale a alternativa que define a aplicação mais adequada do comando while, segundo as boas práticas, quando não há definição explícita de quantas iterações serão feitas:
Questão
Durante a implementação de um sistema de monitoramento contínuo, utilizou-se uma estrutura de repetição while para verificar constantemente o estado de sensores. A lógica da aplicação exige que o código avalie a condição de parada de forma segura para evitar execuções ininterruptas. O controle adequado da repetição é essencial para garantir a estabilidade e o uso eficiente dos recursos computacionais.
Diante do tema, assinale a alternativa que define a aplicação mais adequada do comando while, segundo as boas práticas, quando não há definição explícita de quantas iterações serão feitas:
Alternativas
A) O uso do while é mais eficiente quando se utiliza apenas a constante True e não há nenhuma instrução condicional no bloco do laço.
B) Em situações sem número fixo de repetições, recomenda-se while sem condição definida, seguido de funções com return para saída.
C) O uso do while deve conter uma condição de parada controlada por variável que pode ser modificada internamente no bloco do laço.
D) Quando o while é usado de forma contínua, é indicado manter sua condição inalterada e controlar o fluxo com continue e pass.
E) A melhor prática para usar while é com uma estrutura break externa ao laço para interromper a execução a partir de outro trecho do código.
Explicação
Em boas práticas, o laço while é indicado quando não se sabe previamente quantas iterações serão necessárias, mas ainda assim é essencial que exista uma condição de parada clara e segura.
A forma mais adequada é:
- Definir uma condição booleana (geralmente baseada em uma variável/estado), por exemplo
enquanto sensor_ativoouenquanto nao_recebeu_sinal_de_parada. - Garantir que essa condição possa mudar durante a execução do laço (por evento externo ou por atualização feita no próprio bloco), evitando loop infinito.
- Assim, o laço termina naturalmente quando a variável/estado é atualizado (por exemplo, um sensor muda de estado, um timeout é atingido, uma flag é desativada).
Analisando as alternativas:
- A sugere
while Truesem controle condicional no bloco: isso favorece execução ininterrupta (má prática). - B fala em
while“sem condição definida” (isso não existe na sintaxe) e depender só dereturn: não é a recomendação geral. - C descreve exatamente a prática correta: condição de parada controlada por variável/estado que pode ser alterado.
- D propõe manter condição inalterada e usar
continue/pass: não resolve parada e pode mascarar bugs. - E sugere “break externo” (não faz sentido:
breakatua dentro do laço). Até é comum usarbreakinternamente, mas não como “melhor prática” baseada em outro trecho externo.