Algorithm resolution error summing Java arguments

Asked

Viewed 129 times

0

I made this algorithm that performs the sum of arguments inserted, 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

1 answer

1

Do so:

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);
    }
}

That’s the way out:

$ 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 answer did not use the Scanner or included code asking the user to enter the values. If necessary 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);
    }
}

That’s the way out:

$ 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
  • To mark the answer as accepted do so: http://i.stack.Imgur.com/uqJeW.png

Browser other questions tagged

You are not signed in. Login or sign up in order to post.