[Resolvido] Somar numeros positivos e negativos

3 respostas
M

O programa tem que somar numeros positivos e negativos e como saida somar ambos separadamente não sei onde está o erro. código!

public static void main (String [] args){

            int n = 0, soma = 0,a = 0;
             String  num;


                num = JOptionPane.showInputDialog("digite numeros ou 0 para sair ");

                n = Integer.parseInt(num);

                    while (n != 0 )
                      {
                     soma+= n;
                    
                  num = JOptionPane.showInputDialog("digite numeros ou 0 para sair ");

                n = Integer.parseInt(num);}
                 
                

            
             if (n > 0){
                 soma+=n;
                 
                num = JOptionPane.showInputDialog("digite numeros ou 0 para sair ");

                n = Integer.parseInt(num);
                 
                 
                
             }
             
             else if (n < 0);{


                 
             num = JOptionPane.showInputDialog("digite numeros ou 0 para sair ");

                n = Integer.parseInt(num);
             
                
                 
             }


                    

                JOptionPane.showMessageDialog(null," numeros positivos " +soma+ " Numeros negativos " +soma);
           }

}

3 Respostas

evandro.santos

Tente esse código:

public static void main(String[] args) {
        int somaP = 0, somaN = 0, numAux;

        String num;

        do {
            num = JOptionPane.showInputDialog("digite numeros ou 0 para sair ");
            numAux = Integer.parseInt(num);

            if(numAux > 0) {
                somaP += numAux;
            } else if(numAux < 0) {
                somaN += numAux;
            }

        } while(numAux != 0);
        
        JOptionPane.showMessageDialog(null, " numeros positivos " + somaP + " Numeros negativos " + somaN);
    }

Se responda uma coisa, porque a soma dos números positivos é igual a soma dos números negativos:

JOptionPane.showMessageDialog(null," numeros positivos " +soma+ " Numeros negativos " +soma);

Outra coisa, e se o cara digitar algo que não seja um número? (tente o tratamento de exceções)

A

Uma outra forma de responder este exercicio:

import static javax.swing.JOptionPane.*;

public class Ex5{
	public static void main (String [] args){ 
		int  somanegativo = 0, somapositivo = 0;
		while(true){  
			String num = showInputDialog("digite um numero");
			if(num == null)System.exit(0);
			try{
			int valor = Integer.parseInt(num);
				if(valor == 0){
					showMessageDialog(null, "Valor Inválido", "Erro", 0);
					continue;
				}
				if(valor < 0)somanegativo += valor;
				else somapositivo += valor;
			}catch(NumberFormatException  nfe){
				showMessageDialog(null, "Erro: " + nfe.getClass()
						+ "\nMensagem: " + nfe.getMessage(), "Erro", 0);
						continue;
			}
			num = showInputDialog("Deseja continuar?(s/n)");
			if(num.equalsIgnoreCase("s"))continue;
			break;
		}
			showMessageDialog(null,"Soma positivos: " + somapositivo + "\nSoma Negativos: " + somanegativo);
	}
}
M

Vlw amigo Evandro era isto mesmo que queria, não tinha que somar igual era porque não estava acertando o código, mas valeu mesmo. Muito agradecido.
Obrigado pela colaboração Alessandro.

Criado 30 de maio de 2010
Ultima resposta 1 de jun. de 2010
Respostas 3
Participantes 3