Poprawność wykonania zadania

0

Witam. Znalazłem sobie w necie proste zadanie do zrobienia. http://zadaniacpp.blox.pl/2012/08/Zadanie-17-Sumowanie-wszystkich-elementow-tablicy.html

Wiem że zadanie dotyczy C++ ale postanowiłem zrobić je w javie

I moje rozwiązanie:

package pl.danek.zadanie17;

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    private ArrayList<Integer> tab;    
    private Scanner scanner;
    private int suma;
    public static void main(String[] args) {
        new Main().run();
    }

    private void run(){
        tab = new ArrayList<>();
        scanner = new Scanner(System.in);
        int pom=0;
        do {
            System.out.println("O ile dodac? 0 konczy");
            pom=scanner.nextInt();
            if (pom!=0) {
                try {
                    dodaj(pom);
                    sumuj();
                    rysuj();
                } catch (Exception e) {
                    System.err.println("Podaj liczbe");
                }
            }
        } while (pom!=0);
        System.out.println("Koniec");
    }

    private void rysuj(){
        System.out.println("==========\ntablica:");
        for (Integer x : tab) {
            System.out.println(x);
        }
        System.out.println("\nSuma: "+suma);
        System.out.println("==========");
    }

    private void sumuj(){
        suma=0;
        for (Integer x : tab) {
            suma+=x;
        }
    }

    private void dodaj(int x){
        tab.add(x);
    }
}

Kod działa poprawnie jednak mam pytanie czy jest dobrze napisany? Tj czy spełnia jakieś normy itp. ;)

zmniejszenie wcięć w kodzie - fp

0
  1. Program nie spełnia warunków zadania - nie korzysta z tablicy dynamicznej.
  2. Zwrot

O ile dodac?
jest niezrozumiały.

  1. Program działa źle - wysypuje się gdy użytkownik wpisze liczbę zmiennoprzecinkową lub coś co nie jest liczbą.
  2. Absurdalne jest umieszczenie w bloku try instrukcji które muszą się powieść (prawie, suma może przekroczyć zakres inta), a instrukcji błędogennej nextInt() poza tym blokiem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1