# Java Programmierung richtig?



## reigolski (5. Mai 2012)

Hallo, ich habe hier was mit folgenden Bedingungen programmiert, kann da jmd einen Fehler heraussehen?



Eingabe einer Zahl n

Berechnen von 2 hoch n

Ausgabe des Ergebnisses an den Benutzer

Frage an Benutzer, ob eine erneute Berechnung gewünscht ist

Programm beenden oder neuen Ablauf starten


```
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println(Math.pow(2, sc.nextInt()));
    System.out.println("Neu starten? (j/n)");
    if (sc.next().equals("j")) {
        main(null);
    } else {
        System.exit(0);
    }
}
```


----------



## Gast2 (5. Mai 2012)

Du erstellst mehrere Scanner instanzen, eine reicht vollkommen aus.


----------



## Landei (5. Mai 2012)

Im Prinzip in Ordnung. Der else-Zweig ist unnötig. Die Wiederholung durch Rekursion ist in Java eher ungewöhnlich, aber nicht falsch. Üblich wäre z.B. eine do-while-Schleife. Fehlerbehandlung fehlt. equalsIgnoreCase wäre besser als equals, weil dann auch ein "J" akrzeptiert würde.


----------



## 127.0.0.1 (5. Mai 2012)

> Der else-Zweig ist unnötig



eigentlich ja nicht, wenn er möchte dass das Programm dann beendet wird.
Unnötig wäre es wenn nix drin stehen würde ^^


----------



## Gast2 (5. Mai 2012)

Das Programm beendet sich automatisch wenn die main() Methode durchlaufen wurde. Das explizite System.exit() ist da nicht nötig.


----------

