Do/While Problem (Exception in thread "main" java.

Status
Nicht offen für weitere Antworten.

alco

Neues Mitglied
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:

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.
 

Ariol

Top Contributor
Code:
import java.io.*;

public class Prime
{

	public static void main(String argv[]) throws IOException
	{

		double x;
		boolean isprim = true;
		String str;
		String wdh;

		boolean run = true;

		while (run)
		{
			BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
			System.out.println("Zahl eingeben: ");
			str = eingabe.readLine();

			try
			{
				x = Double.parseDouble(str);

				for (int i = 2; i < x; i++)
				{
					if (x % i == 0) //<-- ist teilbar, also keine Primzahl
					{
						isprim = false;
					}
				}

				if (isprim)
				{
					System.out.println("Die Zahl " + x + " ist eine Primzahl");
				}
				else
				{
					System.out.println("Die Zahl " + x + " ist keine Primzahl");
				}

				boolean redo = true;

				while (redo)
				{
					System.out.println("Wiederholen? (j/n) :");
					wdh = eingabe.readLine().trim().toLowerCase();
					if (wdh.startsWith("n"))
					{
						run = false;
						redo = false;
					}
					else if (wdh.startsWith("j"))
					{
						run = true;
						redo = false;
					}
				}
			}
			catch (NumberFormatException nfe)
			{
				System.err.println("\"" + str + "\" ist keine Zahl\n");
			}
		}

	}
}

Die Numberformatexception kommt, wenn du statt einer Zahl nix eingibst. Aus nix kann man keine Zahl machen ^^
 
S

SlaterB

Gast
> Wobei der String ja auch wenn ich das Programm zum ersten mal durchlaufe empty ist.

hmm, du bekommst aber doch schon zuerst eine Eingabeaufforderung?
warum ist diese erste Eingabe dann 'empty'?
in jedem Fall musst du empty mit einem if/ else abfangen, Double.parseDouble() kann damit nicht umgehen

> Zudem ist es irgendwie seltsam, das wenn ich frage ob die zahl !isprim ist, also ob es keine Primzahl ist, ausgegeben wird

weil du
isprim=true
setzt genau dann wenn x%i==0 also x keine Primzahl ist,
setzte isprim vor der Schleife auf true und in der Schleife auf false wenn x%i==0 ist oder nenne die Variable isnotprim
oder oder oder

du kannst alles programmieren
 

alco

Neues Mitglied
ach so funzt das.. okay.. also ist es in java nicht üblich , sowas einfach mit nem char zu machen?
 

Pappenheimer++

Bekanntes Mitglied
Bei deiner ursprünglichen Version hätte man statt "j" etwas wie "j42" eingeben müssen, dann hätte er die 42 überprüft ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Break Sprungmarken Problem einer While True in While True Java Basics - Anfänger-Themen 6
C Erste Schritte While-Schleifen-Problem Java Basics - Anfänger-Themen 3
F Problem do while Schleife und Scanner Java Basics - Anfänger-Themen 2
A Kleines Abbruch-Problem mit Do-While-Schleife Java Basics - Anfänger-Themen 4
D Textfield im Game ,Problem: while-Schleife Java Basics - Anfänger-Themen 1
F Problem mit der While schleife und dem Scanner Java Basics - Anfänger-Themen 2
T Problem mit der while(!string.equals("x")) Java Basics - Anfänger-Themen 2
L Nummern Generator (mit do-while Schleife) Problem Java Basics - Anfänger-Themen 7
V Schon wieder ein kleines problem...dieses mal mit do-while loop Java Basics - Anfänger-Themen 9
K Problem mit der while - Schleife Java Basics - Anfänger-Themen 9
G problem mit while schleife Java Basics - Anfänger-Themen 8
W Problem While-Anweisung Java Basics - Anfänger-Themen 6
V Problem mit einer While Schleife Java Basics - Anfänger-Themen 8
S Problem mit while-Schleifen Java Basics - Anfänger-Themen 6
O Methode - Problem mit Subtraktion in einer while-Schleife Java Basics - Anfänger-Themen 2
L Problem mit if und while Java Basics - Anfänger-Themen 10
P while schleifen problem Java Basics - Anfänger-Themen 14
M Problem bei Do. While schleife Java Basics - Anfänger-Themen 10
T Problem mit der Logik von Switch und do-while Java Basics - Anfänger-Themen 3
megachucky GUI-Problem in Verbindung mit while-Schleife und Listener Java Basics - Anfänger-Themen 4
A do while problem Java Basics - Anfänger-Themen 2
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
S Erste Schritte While Schleifen Java Basics - Anfänger-Themen 11
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
Say do-while Syntak Java Basics - Anfänger-Themen 3
A Return in While Schleife Java Basics - Anfänger-Themen 6
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
J do..while Schleife Java Basics - Anfänger-Themen 14
W Wiederkehrende Konsolen-Anzeige mit do-While?! Java Basics - Anfänger-Themen 33
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
D Array mit while-schleife Java Basics - Anfänger-Themen 12
B do while Schleife Java Basics - Anfänger-Themen 3
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
M While Schleife? Java Basics - Anfänger-Themen 4
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
J for /while Schleife Java Basics - Anfänger-Themen 5
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
S Do-While-Schleife Java Basics - Anfänger-Themen 2
S While Schleife Java Basics - Anfänger-Themen 4
S Do-While Schleife Java Basics - Anfänger-Themen 6
J Von While zu for Java Basics - Anfänger-Themen 42
G While/If Programm Java Basics - Anfänger-Themen 2
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
G Flussdiagramm-Do while Java Basics - Anfänger-Themen 4
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
B Verschachtelung von For-Schleife in While Schleife Java Basics - Anfänger-Themen 14
G while schleife Java Basics - Anfänger-Themen 11
G while schleife mit array Java Basics - Anfänger-Themen 12
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
G While schleife Java Basics - Anfänger-Themen 2
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
O Erste Schritte Zahlendreieck mit While Java Basics - Anfänger-Themen 2
A Erste Schritte while-Schleife Java Basics - Anfänger-Themen 38
W While-Loop unterbrechen Java Basics - Anfänger-Themen 4
X While Do schleife funtioniert nicht Java Basics - Anfänger-Themen 5
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4
W while Schleife und Bedingung Java Basics - Anfänger-Themen 11
T While Schleife funktioniert nicht Java Basics - Anfänger-Themen 14
J Input/Output Strings aneinander reihen mit while schleife Java Basics - Anfänger-Themen 25
M Methoden while liefert nur den ersten Datensatz Java Basics - Anfänger-Themen 12
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
J While Schleife Java Basics - Anfänger-Themen 19
S While-Schleifen Ausgabe als String? Java Basics - Anfänger-Themen 1
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Z Return in While-Schleife Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben