public void testePrim()
Die Funktion macht zu viel. Sie testet nicht nur, ob eine Zahl Primzahl ist. Stattdessen
- fordert sie den Benutzer zu einer Eingabe auf
- prüft ob die eingegebenen Zahl eine Primzahl ist
- meldet das Ergebnis dem Benutzer.
Lagere den Test in eine eigene Funktion aus.
public boolean istPrim(int zahl) {
boolean isprim = true;
if(zahl <= 1) {
return false;
}
for(int i = 2; i <= Math.sqrt(zahl); i++) {
if(zahl % i != 0) {
isprim = true;
} else {
isprim = false;
break;
}
}
return isprim;
}
public void testePrim(){
Scanner s = new Scanner(System.in);
System.out.println("Geben Sie eine Zahl ein: ");
prim = s.nextInt();
if (istPrim(prim)) {
System.out.println(prim + " ist eine Primzahl!");
} else {
System.out.println(prim + " ist keine Primzahl");
}
}
Jetzt bauchst du dich nur um die Funktion istPrim kümmern, wenn du die Berechnung optimieren möchtest und nur um die Funktion testePrim, wenn du die Benutzerführung verbessern möchtest.
System.out.println("Fehler!");
Die einzige Möglichkeit, wie diese Zeile ausgeführt werden kann ist, wenn Java oder der Computer kaputt ist. Sollte das der Fall sein, dann gibt es keinen Anlass, zu glauben, die Meldung würde dort ankommen, wo sie ankommen soll. Ich halte den else-Teil deshalb für überflüssig.
Fehlermeldungen werden auch üblicherweise über System.err ausgegeben, nicht über System.out.