Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exercício múltiplo de 3

Olá, tentei refazer o código pelo while mas não está aparecendo messagebox nenhuma na tela, ele só executa da pronto mas não acontece nada, alguém sabe aonde está o erro? começou a ficar assim depois que coloquei o i++

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            int cont = 1;
            while (cont <= 100)
            {
                if (cont % 3 == 0)
                {
                    MessageBox.Show("O numero a seguir é multiplo de 3" + cont);
                    cont++;
                }
            }
        }
    }
}
1 resposta
solução!

Bom dia Juan, tudo bem?

O problema está no local onde o cont++ se encontra... :

if (cont % 3 == 0)
    {
         MessageBox.Show("O numero a seguir é multiplo de 3" + cont);
        cont++;
    }

Então, está acontecendo o seguinte:

  • A variável cont é inicializada com o valor 1
  • É realizada uma validação no while (cont <= 100)
  • Essa validação retorna true e entra no while
  • E ai o if (cont % 3 == 0) verifica se 1 % 3 == 0

Essa última linha é o problema... Essa validação sempre é falsa, o que gera um while infinito pois o valor de cont não se altera.

Para corrigir esse problema, tente colocar a instrução cont++ dentro do while e fora do if (cont % 3 == 0)

Espero ter ajudado!

Bons estudos!