Usuário com melhor resposta
[C#]Imprimir laço de repetição em textbox

Pergunta
-
Estou fazendo um exercício em Windows Form Application onde o usuário insere um valor no textbox e eu preciso imprimir em outros 2 textbox somente os valores pares entre 0 e o valor inserido e no outro os valores ímpares entre 0 e o valor inserido.
Consegui desenvolver a lógica, porém não consigo atribuir a minha variável cont(i) ao textbox durante o laço de repetição.
Se eu digito o valor 10, ele só imprime 8, sendo que deveria imprimir 2,4,6,8,10.
Segue o código:
int valor, cont; valor = Convert.ToInt32(txtValor.Text); for (int cont = 0 ; cont < valor; cont++) { if (cont % 2 == 0) { txtPar.Text = cont.ToString(); } else{ txtImpar.Text = cont.ToString(); }
- Editado MGalvani quinta-feira, 13 de novembro de 2014 20:34
Respostas
-
Bom dia,
Isso está acontecendo porque você está sempre atribuindo um valor novo ao TextBox sem fazer a concatenação do valor antigo, exibindo sempre o último valor analisado. Para fazer a concatenação, verifique a correção do seu código abaixo.
int valor; valor = Convert.ToInt32(txtValor.Text); for (int cont = 0 ; cont < valor; cont++) { if (cont % 2 == 0) { txtPar.Text += cont.ToString() + " "; } else { txtImpar.Text += cont.ToString() + " "; } }
Eu ajustei a linha de passagem da variável para o TextBox da seguinte maneira: coloquei o caractere "+" após a propriedade Text, para fazer a concatenação dos conteúdos e, após a variável, acrescentei um espaço para a boa visualização do próximo número.
OBS: Você está instanciando a variável CONT em dois lugares: no início do código e no laço de repetição FOR. Experimente criar apenas dentro do FOR (deve estar exibindo algum erro de compilação no seu código por causa disso).
Abs.
Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx
- Marcado como Resposta MGalvani sexta-feira, 14 de novembro de 2014 17:55
Todas as Respostas
-
Bom dia,
Isso está acontecendo porque você está sempre atribuindo um valor novo ao TextBox sem fazer a concatenação do valor antigo, exibindo sempre o último valor analisado. Para fazer a concatenação, verifique a correção do seu código abaixo.
int valor; valor = Convert.ToInt32(txtValor.Text); for (int cont = 0 ; cont < valor; cont++) { if (cont % 2 == 0) { txtPar.Text += cont.ToString() + " "; } else { txtImpar.Text += cont.ToString() + " "; } }
Eu ajustei a linha de passagem da variável para o TextBox da seguinte maneira: coloquei o caractere "+" após a propriedade Text, para fazer a concatenação dos conteúdos e, após a variável, acrescentei um espaço para a boa visualização do próximo número.
OBS: Você está instanciando a variável CONT em dois lugares: no início do código e no laço de repetição FOR. Experimente criar apenas dentro do FOR (deve estar exibindo algum erro de compilação no seu código por causa disso).
Abs.
Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx
- Marcado como Resposta MGalvani sexta-feira, 14 de novembro de 2014 17:55
-