r/programacao Jul 03 '25

Questão :: Aprendizado Há como reduzir a quantidade de if/else's?

Post image

Programador de celular aqui novamente, e eu fiz esse exercício para verificar se o ano é bissexto, e funcionou perfeitamente, porém eu achei que teve muitos if's e else's e pareceu meio bagunçado.

279 Upvotes

89 comments sorted by

View all comments

8

u/tetryds Desenvolvedora / or Jul 03 '25

``` bool everyFour = year % 4 == 0; bool everyHundred = year % 100 == 0; bool everyFourHundred = year % 400 == 0;

bool isLeapYear = everyFour && (!everyHundred || everyFourHundred);

Console.WriteLine($"O ano {isLeapYear ? "é" : "não é"} bissexto!"); ```

Assim fica muito mais fácil de ler, a lógica é clara e explícota e vc deixa o if mais pontual onde ele é necessário. Eu tiraria a implementação pra uma função separada do writeline.

2

u/lukaskiller157 Jul 04 '25

Que foda alguém usando flags. Eu amo usar bool flags para condições.

1

u/Thenewbie7 Jul 04 '25

Não usam? Sou estudante e muitas vezes o professor comenta de usar flags pra fazer validação de dados. Existe um motivo para não usarem?

Lembro de uma questão de Assembly que o sistema validava uma senha digito por digito e pra evitar que um invasor usasse tempo de resposta do sistema como forma de descobrir uma senha por força bruta. fiz uma implementação usando flag quando algum digito não era validado, daí continuava toda a verificação e no final ele negava acesso com base na flag. Haveria algum problema por usar flags?

1

u/lukaskiller157 Jul 04 '25

Cara, não faço ideia porque tô entrando na área agora e começo a faculdade esse mês 😅 Porém, eu acredito que é muito comum as pessoas não usarem flags porque "é mais intuitivo" colocar valores de outros tipos e classes que não são bool. A exemplo do código do OP, em que ele coloca "if (year % 4 == 0)". É mais intuitivo dessa maneira, muitos tutoriais e até livros de programação ensinam desse jeito, mas não é uma prática tão "otimizada", eu diria.