GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Fatorial Java

java
fatorial
Tags: #<Tag:0x00007ff3fe906ab0> #<Tag:0x00007ff3fe906920>

#1

Sou novo aqui no Fórum e estou aprendendo Java … Estou criando um programa que realiza cálculos variados e não estou conseguindo fazer com que meu programa decremente o número digitado pelo usuário. Alguém pode me ajudar??

 package calculadora2.pkg0;

 import javax.swing.JOptionPane;

 public class Calculadora{
 public static void main(String args []) {
 int id = 0,x = 1, numero = 0;
 int n1, n2, soma, sub, mult, div, med;
 int fat = 1;
 String primeiroNumero, segundoNumero;
 
            while(x == 1){
             String menu;
             menu = JOptionPane.showInputDialog(null,"Seleciona a opção desejada\n"
                     + "1 - Realizar adição\n"
                     + "2 - Realizar a subtração\n"
                     + "3 - Realizar a multiplicação\n"
                     + "4 - Realizar a divisão\n"
                     + "5 - Realizar a media\n"
                     + "6 - Realizar o decremento do número\n"
                     + "7 - Realizar todas as operaçãoes acima (Exeto a Decrementação)\n"
                     + "8 - Sair", "CALCULADORA 3.0", JOptionPane.INFORMATION_MESSAGE);
             int aux = Integer.parseInt(menu);
     
     if(aux == 1){
          
         primeiroNumero = JOptionPane.showInputDialog("Digite o primeiro numero");
         segundoNumero = JOptionPane.showInputDialog("Digite o segundo numero");
         
             n1 = Integer.parseInt(primeiroNumero);
             n2 = Integer.parseInt(segundoNumero);
         
                 soma = n1 + n2;
                 
         JOptionPane.showMessageDialog (null, "A soma é: " + soma);       
           }
     
     if(aux == 2){
          
         primeiroNumero = JOptionPane.showInputDialog("Digite o primeiro numero");
         segundoNumero = JOptionPane.showInputDialog("Digite o segundo numero");
         
             n1 = Integer.parseInt(primeiroNumero);
             n2 = Integer.parseInt(segundoNumero);
         
                 sub = n1 - n2;
                 
         JOptionPane.showMessageDialog (null, "A subtração é: " + sub);       
           }
     
         if(aux == 3){
          
         primeiroNumero = JOptionPane.showInputDialog("Digite o primeiro numero");
         segundoNumero = JOptionPane.showInputDialog("Digite o segundo numero");
         
             n1 = Integer.parseInt(primeiroNumero);
             n2 = Integer.parseInt(segundoNumero);
         
                 mult = n1 * n2;
                 
         JOptionPane.showMessageDialog (null, "A multiplicação é: " + mult);       
           }
        
         if(aux == 4){
          
         primeiroNumero = JOptionPane.showInputDialog("Digite o primeiro numero");
         segundoNumero = JOptionPane.showInputDialog("Digite o segundo numero");
         
             n1 = Integer.parseInt(primeiroNumero);
             n2 = Integer.parseInt(segundoNumero);
         
                 div = n1 / n2;
                 
         JOptionPane.showMessageDialog (null, "A divisão é: " + div);       
           }  
         
         if(aux == 5){
          
         primeiroNumero = JOptionPane.showInputDialog("Digite o primeiro numero");
         segundoNumero = JOptionPane.showInputDialog("Digite o segundo numero");
         
             n1 = Integer.parseInt(primeiroNumero);
             n2 = Integer.parseInt(segundoNumero);
         
                 med = (n1 + n2) / 2;
                 
         JOptionPane.showMessageDialog (null, "A média é: " + med);       
       }
         
           if(aux == 6){
          
         primeiroNumero = JOptionPane.showInputDialog("Digite o numero");
         
             n1 = Integer.parseInt(primeiroNumero);
             for( int i = 0; i <= n1; i-- )
                 { 
                     fat *= i;
                 }
                 
         JOptionPane.showMessageDialog (null, "O decremento de " + n1 + " é igual a " + fat);       
       }
         if(aux == 7){
          
         primeiroNumero = JOptionPane.showInputDialog("Digite o primeiro numero");
         segundoNumero = JOptionPane.showInputDialog("Digite o segundo numero");
         
             n1 = Integer.parseInt(primeiroNumero);
             n2 = Integer.parseInt(segundoNumero);
         
             soma = n1 + n2;
             sub = n1 - n2;
             mult = n1 * n2;
             div = n1 / n2;    
             med = (n1 + n2) / 2;
             
         JOptionPane.showMessageDialog (null, "A soma é: " + soma);       
         JOptionPane.showMessageDialog (null, "A subtração é: " + sub);          
         JOptionPane.showMessageDialog (null, "A multiplicação é: " + mult);
         JOptionPane.showMessageDialog (null, "A divisão é: " + div);    
         JOptionPane.showMessageDialog (null, "A média é: " + med);       
       }
         else if(aux == 8){
                 x += 1;
             }
     }
   }  
 }

#2
         n1 = Integer.parseInt(primeiroNumero);
         for( int i = 0; i <= n1; i-- )
             { 
                 fat *= i;
             }

Se i é igual a zero, qual valor de fat?


#3
variavelNumerica--;

#4

Olá, consegui fazer, ficou assim:

for( int i = 0; i <= n1; --n1 )
{ 
          JOptionPane.showMessageDialog (null, "O decremento é igual a: " + n1);
}

Só que o resultado não fica em apenas uma janela do JOptionPane, ele abre um janela para cada número, vcs poderiam me dizer porque isso acontece?


#5

Isso acontece porque a cada iteração do laço você faz um JOptionPane.showMessageDialog.
Se quer apresentar todos os números de uma vez só, você deve montar o texto dentro do laço e só apresentar quando o laço terminar.


#6

Obrigado


#7