Parceiro, acho que o método do fatorial deveria estar fora do main (que é o principal). Eu não entendi o porquê do 'static', mas estou começando também.
Então você pega e faz primeiro a função do fatorial:
//Método
public int fatorial(int n2){
int res;
for(int x1 = 1; x1 <= n2; x1++){
res=(res*x1);
}
return res;
}
// Fim do Método
Certo?
Agora, você precisa rodar esse método com a função main:
public static void main(String args[])
{
String num,decisao;
int x,n;
double resultado = 1;
num = JOptionPane.showInputDialog("Digite um número: ");
n = Integer.parseInt(num);
if((n>0) && (n<=10)){
for(x = 1; x <= n; x++){
resultado=resultado+(1/fatorial(x));
// Acho que poderia ser também assim:
// resultado += (1/fatorial(x));
}
JOptionPane.showMessageDialog(null,"DivFat: "+resultado);
}
else{
JOptionPane.showMessageDialog(null,"Erro!! O Valor Digitado Tem que ser Maior que 0 e menor que 10");
}
// Não entendi porque você colocou isso, mas tudo bem.
System.exit(0);
}
}
Se você puder ver, o código ficou um pouco melhor organizado e mais fácil de ler com os espaços que foram dados.
import javax.swing.JOptionPane;
public class DivFatorial {
//Método
public int fatorial(int n2){
int res;
for(int x1=1;x1<=n2;x1++){
res=(res*x1);
}
return res;
}
// Fim do Método
public static void main(String args[])
{
String num,decisao;
int x,n;
double resultado = 1;
num = JOptionPane.showInputDialog("Digite um número: ");
n = Integer.parseInt(num);
if((n>0) && (n<=10)){
for(x = 1; x <= n; x++){
resultado=resultado+(1/fatorial(x));
// Acho que poderia ser também assim:
// resultado += (1/fatorial(x));
}
JOptionPane.showMessageDialog(null,"DivFat: "+resultado);
}
else{
JOptionPane.showMessageDialog(null,"Erro!! O Valor Digitado Tem que ser Maior que 0 e menor que 10");
}
// Não entendi porque você colocou isso, mas tudo bem.
System.exit(0);
}
}
Como o código todo ficaria.
Existem algumas práticas que facilitam a sua vida quando for dar manutenção em um programa ou quando outra pessoa for lever o programa que você fez, como os comentários nos métodos. Você usou '//'. Não está errado... mas existe um artifício do Java chamado Javadoc, que gera um 'documento' sozinho.
/**
* Método que vai fazer tal coisa.
* @param número que vai ser passado por parâmetro
*/
public int fatorial(int n2){
int res;
for(int x1=1;x1<=n2;x1++){
res=(res*x1);
}
return res;
}
Saca? É só uma dica pra você, pra quando os outros lerem seu código, eles tenham uma maior facilidade. É um padrão que muitos programadores Java seguem.
Abraço.