Pessoal eu quero que fassa um fatorial ou seja pegue um número 5 por exemplo e faça a seguinte conta
5 * 4 * 3 * 2 * 1 (isso é a conta do fatorial) ou seja
pegar uma variavel e diminua o número até que o numero seja igual a 1
e se o cara digitar por exemplo 0 jogar na tela o número 1
tela=tfvisor.getText();
int conversor=Integer.parseInt(tela);
if (conversor>=1){
while (conversor>=1){
int cont=conversor-1;
int total=cont*conversor;
tfvisor.setText(String.valueOf(total));
}
}else{
tfvisor.setText("1");
}
O problema está no seu While.
O que está acontecendo é o seguinte, quando você clica no botão, o while começa a executar uma sequencia de comandos, e nao para mais, pq o seu numeor nao está retornando “1”, Dessa forma, fica em uma corrente infinita.
O que você tem que fazer eh tirar o while e fazer uma variavel guardar a última conversao feita, tipo,
digito 5 e clico no botao, uma var terá que guardar o valor
(*5). para que na proxima vez que você clicar no botao ele faça ??*4…
e assin oir diante
blz?
AlissonGuj
olhe a minha variavel conversor recebe o que tem na tela e a cont recebe conversor menos -1 e isso ele faz ate o numero for maior ou igual a 1
entende?
Ultralogic
sim, porém, quando executei o código, ele fazia uma sequencia infinita e mostrava sempre os mesmos valores, -1 contagem e 0 total.
Talvez nao tenha nada a ver, mas acredito ainda que seja o seu while que está ocasionando o problema
tela=tfvisor.getText();
int conversor = Integer.parseInt(tela);
if (conversor >= 1) {
int total = conversor;
int cont = conversor;
while (cont > 1) {
total = total * (cont-1);
tfvisor.setText(String.valueOf(total));
cont--;
}
} else {
tfvisor.setText("1");
}
Ultralogic
legal, peguei o codigo já e ja estou usando na minha calculadora
soh precisei falzer algumas modificações e tah funcionando
vwl aew
agora preciso fazer mais um botao na minha calc pra preencher o espaço
AlissonGuj
a unica coisa que faltava é que não pegava da tela psy mas eu postei certinho ali
Ultralogic
isso sim
as modificaçoes de que eu falei eram quanto as minhas vars
que eram diferentes na nomenclatura