1
resposta

usando else if nesse exercício

Tentei fazer dessa forma, só que, dependendo do numero, ás vezes o resultado é impresso, ás vezes não. O que poderia ser?

int numero = 15;

            if (numero % 3 ==0 && numero % 4 == 0)
            {

            Console.WriteLine("esse numero é divisivel por 3 e por 4");
            }
             else if (numero %3 == 0 && numero %4 == 1)
             {
                 Console.WriteLine("esse numero não é divisível por 4, mas é divisivel por 3");
             }
            else if (numero %3 == 1 && numero %4 ==0)
            {
                Console.WriteLine("esse numero não é divisível por 3, mas é divisivel por 4");
            }

               else if (numero %3 == 1 && numero %4 ==1)
            {
                Console.WriteLine("esse numero não é divisível por 3 nem por 4");
               }
1 resposta

O operador % representa o resto de uma divisão. No seu código você está testando apenas se o resto é zero ou um. O que funcionaria bem se você estiver testando a divisão por 2. Porém o resto de uma divisão sempre será um número entre 0 e o número menos 1. Exemplo:

4 % 4 retorna 0;

5 % 4 retorna 1;

6 % 4 retorna 2;

7 % 4 retorna 3;

8 % 4 retorna 0;

Ok. Se você está iniciando na programação sugiro que você tente resolver sem ler o resto da minha resposta. Assim você tem a change de descobrir sozinho onde está o problema.

Se você não quiser ou já tiver tentado e ainda não conseguiu. Basta trocar o numero % (3 ou 4) == 1 por numero % (3 ou 4) != 0. Ou seja o número não é divisível por número que vem após o sinal de %.