Depois de muito batalhar consegui resolver outro dos exercicios do livro do Deitel que pedia para escrever um programa que calculase o fatorial dos inteiros de 1 à 5 e exibir os resultados numa JTextArea. Tudo ocorre bem, porém, quando altero o código para que ele calcule o fatorial dos inteiros de 1 à 17 (ou mais) começa aparecer resultados negativos. Alguém sabe me explicar o porque de aparecerem esses valores negativos se em nenhum momento o programa usa calculos de subtração ou divisão?
/*
* Exer5_8.java
*
* Criado em 7 de Julho de 2005, 21:17
*
* Programa escrito para calcular o fatorial dos inteiros de 1 à 5 e exibilos em uma JTextArea
*
*
*/
/**
*
* Autor Matheus
*/
import javax.swing.JTextArea; // Importa a classe JTextArea do pacote javax.swing.
import javax.swing.JOptionPane; // Importa a classe JOptionPane do pacote javax.swing.
public class Exer5_8 {
public static void main( String args[] )
{
int sentinel = 1, result = 1, valor = 1;
JTextArea Janelatexto = new JTextArea();
for( int inteiro2 = 1; inteiro2 <= 19; inteiro2++ ) {
while( sentinel <= inteiro2 ) {
result *= valor++;
sentinel++;
}
Janelatexto.append( inteiro2 + "\t" + result + "\n");
result = 1;
sentinel = 1;
valor = 1;
}
JOptionPane.showMessageDialog( null,
Janelatexto, "Tabela", JOptionPane.INFORMATION_MESSAGE );
}
}
