Hi Leute,
Brauche wiedereinmal Hilfe bei Java.
Ich habe 2 Klassen, eine heißt "Mathe", in der wird die Teilersumme einer bestimmten Zahl, die der Benutzer eingeben kann, ausgerechnet und ausgegeben. Die andere Klasse, "MatheDialog" dient als Schnittstelle für den Benutzer, welcher die Auswahl zwischen verschiedenen Vorgängen hat. Einer dieser Vorgänge bzw, der einzige den ich bin jetzt machen will, ist die Teilersumme.
Mein Problem:
Wenn ich in der Konsole die 1 eingebe, sollte ich NORMALERWEISE aufgefordert werden, eine Zahl einzugeben, dessen Teilersumme errechnet wird. Drücke ich die Zahl allerdings, läuft die Schleife welche ich in der MatheDialog Klasse habe unendlich lang und hört nicht mehr auf.
Dabei bin ich mir einfach nicht klar, welchen Fehler ich gemacht habe. Hoffe ihr könnt mir Abhilfe schaffen.
Klasse Mathe
Klasse MatheDialog:
Ich hoffe ihr könnt mir den Fehler sagen, wäre euch sehr dankbar!
Brauche wiedereinmal Hilfe bei Java.
Ich habe 2 Klassen, eine heißt "Mathe", in der wird die Teilersumme einer bestimmten Zahl, die der Benutzer eingeben kann, ausgerechnet und ausgegeben. Die andere Klasse, "MatheDialog" dient als Schnittstelle für den Benutzer, welcher die Auswahl zwischen verschiedenen Vorgängen hat. Einer dieser Vorgänge bzw, der einzige den ich bin jetzt machen will, ist die Teilersumme.
Mein Problem:
Wenn ich in der Konsole die 1 eingebe, sollte ich NORMALERWEISE aufgefordert werden, eine Zahl einzugeben, dessen Teilersumme errechnet wird. Drücke ich die Zahl allerdings, läuft die Schleife welche ich in der MatheDialog Klasse habe unendlich lang und hört nicht mehr auf.
Dabei bin ich mir einfach nicht klar, welchen Fehler ich gemacht habe. Hoffe ihr könnt mir Abhilfe schaffen.
Klasse Mathe
Java:
public class Mathe {
private static int teilersumme;
private static int eingabe;
private static int teiler;
public Mathe(){
}
public static void buildTeilersumme() {
for (int eingabe = 1; teiler < 1000; eingabe++) {
int teilersumme = 0;
for (int teiler = 1; teiler < teiler; teiler++) {
if (eingabe % teiler == 0) {
teilersumme = eingabe + teiler;
}
}
System.out.println("Die Teilersumme von " + eingabe + " ist "
+ teilersumme);
}
}
}
Klasse MatheDialog:
Java:
import java.util.Scanner;
public class MatheDialog
{
private Mathe mathe2;
private Scanner input = new Scanner(System.in);
private static final int TEILERSUMME = 1;
private static final int ENDE = 0;
public MatheDialog() {
}
public static void main (String[] args) {
new MatheDialog().Start();
}
private void Start() {
mathe2 = null;
int funktion = -1;
while (funktion != ENDE) {
try{ funktion = einlesenFunktion();
ausfuehrenFunktion(funktion);
}
catch (Exception e) {
System.out.println(e);
}
catch (AssertionError e) {
System.out.println(e);
}
}
}
private int einlesenFunktion() {
System.out.print("\n" + TEILERSUMME + " : teilersumme; " +
"\n" + ENDE + " : beenden ");
return input.nextInt();
}
private int eingabeEinlesen(){
System.out.print("Eingabe: ");
return input.nextInt();
}
private void ausfuehrenFunktion( int funktion) {
int teilersumme;
int eingabe;
if (funktion == TEILERSUMME)
{
System.out.println("Die Teilersumme: ");
mathe2.buildTeilersumme();
teilersumme = input.nextInt();
}
else
{
System.out.println("Falsche Funktion");
}
}
}