Hallo, ich bin blutiger Anfänger in Java und mir relativ sicher das ihr meinen Fehler schnell finden werdet.
Zweck des Programms: Primzahlen berechnen und ausgeben ob Primzahl oder nicht. Möchte das Programm auf Wunsch wiederholen.
Hier der Code:
Wenn ich das Programm laufen lasse, und J oder j eingebe zum wiederholen, bekomme ich in der Console folgende Fehlermeldung:
Ich hab mich schon dumm und dmälich danach gegoogelt, die while Schleife auf etliche verschiedene Weisen versucht zum laufen zu bewegen, aber es scheint ja oben in der Eingabe das Problem. Muss ich dort vielleicht noch irgendetwas einfügen? Die console sagt ja : empty string
Wobei der String ja auch wenn ich das Programm zum ersten mal durchlaufe empty ist.
Zudem ist es irgendwie seltsam, das wenn ich frage ob die zahl !isprim ist, also ob es keine Primzahl ist, ausgegeben wird , das es eine ist, und andersherum (Daher auch die vertauschte Ausgabe).
Ich habe das Programm vor ein paar Jahren auch in C++ geschrieben, und von der Logik her ist ja eigentlich kein Fehler im Programm?
Ich kann mir denken ,dass das Problem warscheinlich total simpel ist und irgendwo in den Grundlagen erklärt steht, doch habe ich mein Script schon danach durchsucht und wie gesagt stundenlang google zu rate gezogen.
Zweck des Programms: Primzahlen berechnen und ausgeben ob Primzahl oder nicht. Möchte das Programm auf Wunsch wiederholen.
Hier der Code:
Code:
import java.io.*;
public class Prime
{
public static void main (String argv[]) throws IOException
{
char wdh;
double x;
boolean isprim=false;
String str;
do {
BufferedReader eingabe=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Zahl eingeben: ");
str=eingabe.readLine();
x = Double.parseDouble(str);
for(int i=2;i<x;i++)
{if (x%i==0)
{isprim=true;
}
}
if (!isprim)
{System.out.println("Die Zahl " +x+ " ist eine Primzahl");
}
else
{System.out.println("Die Zahl " +x+ " ist keine Primzahl");
}
System.out.println("Wiederholen? (j/n) :");
wdh=(char)System.in.read();
}
while(wdh=='J'||wdh=='j');
}
}
Wenn ich das Programm laufen lasse, und J oder j eingebe zum wiederholen, bekomme ich in der Console folgende Fehlermeldung:
Code:
Exception in thread "main" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at Prime.main(Prime.java:16)
Ich hab mich schon dumm und dmälich danach gegoogelt, die while Schleife auf etliche verschiedene Weisen versucht zum laufen zu bewegen, aber es scheint ja oben in der Eingabe das Problem. Muss ich dort vielleicht noch irgendetwas einfügen? Die console sagt ja : empty string
Wobei der String ja auch wenn ich das Programm zum ersten mal durchlaufe empty ist.
Zudem ist es irgendwie seltsam, das wenn ich frage ob die zahl !isprim ist, also ob es keine Primzahl ist, ausgegeben wird , das es eine ist, und andersherum (Daher auch die vertauschte Ausgabe).
Ich habe das Programm vor ein paar Jahren auch in C++ geschrieben, und von der Logik her ist ja eigentlich kein Fehler im Programm?
Ich kann mir denken ,dass das Problem warscheinlich total simpel ist und irgendwo in den Grundlagen erklärt steht, doch habe ich mein Script schon danach durchsucht und wie gesagt stundenlang google zu rate gezogen.