Error in algorithm resolution that sums arguments in Java

0

I made this algorithm that performs the sum of inserted arguments, but it shows something else.

package ExerciciosSintaxe;

import java.util.Scanner;

public class Ex7 {
    public static void main(String[] args) {
        int soma = 0;
        for(int i=0; i<args.length; i++) { 
            System.out.printf("\nEntre com numeros #%d: %s ", i, args[i]);

            try {
                int n= Integer.parseInt(args[i]);
                soma +=n;
                System.out.println(soma);
            } catch(NumberFormatException e1) {

            }

            try {
                double d = Double.parseDouble(args[i]);
                soma +=d;
                System.out.println(soma);
            } catch(NumberFormatException e2) {
                System.out.printf("\nNumero #%d invalido", i);
            }
        }
    }
}

If I type for example 2 integers: 12 14, it shows this:

Entre com numeros #0: 12 12
24

Entre com numeros #1: 14 38
52
    
asked by anonymous 19.07.2015 / 00:29

1 answer

1

Do this:

public class Ex7 {

    public static void main(String[] args) throws NumberFormatException {

        int soma = 0;

        for(int i=0; i<args.length; i++) { 
            int n= Integer.parseInt(args[i]);
            System.out.printf("Número na posição %d do array: %s\n", i, args[i]);
            soma +=n;
        }

        System.out.println("Soma: " + soma);
    }
}

The output will look like this:

$ java Ex7 12 14
Número na posição 0 do array: 12
Número na posição 1 do array: 14
Soma: 26

Note that this response did not use Scanner nor did it include code asking the user to enter the values. If you need to do with Scanner , the code can be as below:

import java.util.Scanner;

public class Ex7 {

    public static void main(String[] args) throws NumberFormatException {

        int soma = 0;

        Scanner scanner = new Scanner(System.in);

        do {
            System.out.print("Entre com o próximo número ou Enter para somar: ");
            if (scanner.hasNextLine()) {
                try {
                    soma += Integer.parseInt(scanner.nextLine());
                } catch (NumberFormatException e) {
                    break;
                }
            }
        } while (true);

        System.out.println("Soma: " + soma);
    }
}

The output will look like this:

$ java Ex7
Entre com o próximo número ou Enter para somar: 12
Entre com o próximo número ou Enter para somar: 14
Entre com o próximo número ou Enter para somar: 
Soma: 26
    
19.07.2015 / 03:34