4.9. Pare e pense um instante¶
Procure pensar em como evitar o if-if
nesse caso, modificando o código acima para (edite no próprio ActiveCode) para:
Solução alternativa 1: usar
if-else
ao invés deif-if
: altere oif
na linha 5 para usar umelse
. Observe que essa solução é mais eficiente pois evita a computação de “n não é múltiplo de 2”, e também é mais elegante e clara pois o uso doelse
indica que o processamento é feito de forma mutualmente exclusiva;
Solução alternativa 2: usar um só
if
ao invés deif-if
: simplesmente assumindo que o valor inicial deestado = "ímpar"
antes do primeiroif
; e
Outros múltiplos: modifique a condição do
if
para verificar se um número é múltiplo de 3 ou não. Experimente outros números também para entender o operador%
.
Embora a solução if-if
produza resultados corretos, o uso do comando if-else
ou apenas o if
torna o programa bem mais elegante e seguro.
Variável de estado
Pense agora na variável estado
. Você já deve ter pensando que essa variável é inútil e que podemos eliminá-la e colocar prints
nas linhas 4 e 6, com as mensagens adequadas.
Se você pensou assim, com relação ao funcionamento do programa, você tem razão.
Por outro lado, gostaríamos que você procure usar esse padrão de pensamento:
carregar os dados e definir os estados iniciais;
processar os dados e ir evoluindo os estados até que, só ao final,
terminar o programa exibindo o resultado.
Seguiremos esse padrão ao longo desse livro pois facilita a leitura, o entendimento e a manutenção do código.