reached end of file while parsing oder 3 errors

primus1998

Mitglied
Hallo liebe Community,

ich habe folgendes Problem:
ich habe ein kleines Anfängerprogramm geschrieben, dass eine Zahl daraufhin überprüft, ob sie eine Primzahl ist. Soweit so gut. Doch beim erstellen des Bytecodes kam die (einzige) Errormeldung:

Primzahltest.java:48: error: reached end of file while parsing
}
^
1 error


Sooo Dr. Google brachte mich auf die Lösung, eine geschweifte Klammer am Ende anzuhängen. Doch als ich dann versucht habe, den Bytecode zu erstellen, kamen drei Errormeldungen:

Primzahltest.java:7: error: possible loss of precision
zahl = Double.parseDouble(args[0]);
^
required: int
found: double
Primzahltest.java:9: error: cannot find symbol
half = zahl / 2;
^
symbol: variable half
location: class Primzahltest
Primzahltest.java:20: error: cannot find symbol
for (b = 2; b < half; b++)
^
symbol: variable half
location: class Primzahltest
3 errors


Was muss ich jetzt machen??? Anbei den Orginalquellcode:

Java:
public class Primzahltest 
    {
    public static void main(String[] args ) 
        {
        int i, zahl, b;
        boolean IstPrim;
        zahl = Double.parseDouble(args[0]);
        IstPrim = true;
        half = zahl / 2;
        i = 0;
        if (zahl < 2) 
            {
            i = i + 1;
            IstPrim = false;
            }
          else 
            { 
            i = i;
            }
        for (b = 2; b < half; b++) 
            {
                if (zahl % b == 0);
                    {
                    i = i + 1;
                    System.out.println("Es wurde ein Teiler gefunden");
                    }
        if (i == 0)
            {
            System.out.println("Diese Zahl ist eine Primzahl");
            IstPrim = true;
            }
          else
            {
            IstPrim = false;
            System.out.println("Diese Zahl ist keine Primzahl");
            }
        if (zahl == 2)
            {
            System.out.println("Entschuldigung, diese Zahl ist doch eine Primzahl");
            IstPrim = true;
            i = 0;
            }
          else
            {
            }
        System.out.println("Die Überprüfung wurde abgeschlossen");
    }
}
 

rme

Top Contributor
Die Konvention, nach der du deinen Code eingerückt hast, ist mir leider nicht bekannt - dadurch ist er für mich unleserlich.

Gewöhne dir eine am besten früh eine gängige Konvention an, dann können andere deinen Code leichter lesen und du findest solche Fehler automatisch. Konkret: Wenn du eine geschweifte Klammer öffnest, gehören alle folgenden Zeilen eine Ebene weiter eingerückt, bis die Klammer wieder geschlossen wird. Wenn du dich an diese Regel hältst und deinen Code entsprechend formatierst, wirst du ganz einfach von selbst sehen, wo da irgendwas fehlt :)

Ich glaube allerdings, dass bei der for-Schleife die schließende Block-Klammer fehlt.
 
Zuletzt bearbeitet:

primus1998

Mitglied
Vielen Dank für den Hinweis!!! Funktioniert leider immer noch nicht. Hier jetzt der geänderte Quellcode:
Java:
public class Primzahltest {
    public static void main(String[] args ) 
        {
            int i, zahl, b;
            boolean IstPrim;
            zahl = Double.parseDouble(args[0]);
            IstPrim = true;
            half = zahl / 2;
            i = 0;
            if (zahl < 2) 
                {
                    i = i + 1;
                    IstPrim = false;
                }
              else 
                { 
                    i = i;
                }
            for (b = 2; b < half; b++) 
                {
                    if (zahl % b == 0);
                        {
                            i = i + 1;
                            System.out.println("Es wurde ein Teiler gefunden");
                        }
                }
            if (i == 0)
                {
                    System.out.println("Diese Zahl ist eine Primzahl");
                    IstPrim = true;
                }
              else
                {
                    IstPrim = false;
                    System.out.println("Diese Zahl ist keine Primzahl");
                }
            if (zahl == 2)
                {
                    System.out.println("Entschuldigung, diese Zahl ist doch eine Primzahl");
                    IstPrim = true;
                    i = 0;
                }
              else
                {
                }
            System.out.println("Die Überprüfung wurde abgeschlossen");
        }
    }
Hoffe habe jetzt irgendwelche gängigen Konventionen genutzt. :oops:

Beim Erstellen des Bytecodes kommen leider immer noch folgende 3 errors: :(

Z:\Java\Programme\Primzahl>javac Primzahltest.java
Primzahltest.java:6: error: possible loss of precision
zahl = Double.parseDouble(args[0]);
^
required: int
found: double
Primzahltest.java:8: error: cannot find symbol
half = zahl / 2;
^
symbol: variable half
location: class Primzahltest
Primzahltest.java:19: error: cannot find symbol
for (b = 2; b < half; b++)
^
symbol: variable half
location: class Primzahltest
3 errors
 

rme

Top Contributor
"zahl" ist bei dir vom Typ "int", d.h. eine ganze Zahl ohne Nachkommastelle. Du benutzt zum Einlesen aber parseDouble, was eine Zahl mit Nachkommastelle zurückgeben kann. Der Compiler beschwert sich, dass du dadurch an Präzision verlierst (weil du durch die Zuweisung den Nachkommateil verlierst). Du musst also entweder deinen Datentyp ändern oder nicht parseDouble, sondern etwas anderes benutzen.

In Zeile 8 führst du eine Zuweisung an eine Variable namens "half" durch, die du nicht deklariert hast. In Java muss man jede Variable deklarieren, damit der Compiler weiß, welchen Datentyp sie hat. Eine Deklaration ist eine Anweisung wie bei dir in Zeilen 4 und 5.
 

primus1998

Mitglied
Oh stimmt... :bloed: auf das fehlende Deklarieren hätte ich selbst kommen können ;)
Wodurch muss ich denn Double.parseDouble ersetzen, damit ich eine Ganzzahl (int) benutzen kann?
Trotzdem schon mal vielen Dank für den Hinweis auf das fehlende Deklarieren!!! :toll:
 

rme

Top Contributor
Ein if benötigt nicht unbedingt ein else - wenn der else-Block leer ist, kannst du auch einfach das ganze else-Konstrukt weglassen :)

Integer.parseInt könntest du verwenden.
 
Zuletzt bearbeitet:

primus1998

Mitglied
Vielen Dank!!! in meinem Lehrbuch wurde bisher immer double.parseDouble verwendet, daher kannte ich Integer.parseInt noch nicht. Jetzt funzt alles :) Aber eine letzte Frage hätte ich noch: Wie kann man ein Danke abgeben???
 

rme

Top Contributor
Jeder Beitrag ist in so einem Kasten, in dem rechts unten Elemente wie Zitieren und Danke sind - das Danke bezieht sich immer auf einen Beitrag und nur indirekt auf dessen Verfasser, daher wird das dort vergeben :)
 

primus1998

Mitglied
hmmm dann ist mein Status wohl noch zu niedrig... :/ da hätte ich ihn jetzt auch erwartet, aber da gibt es leider nur zitieren, diesen Beitrag zitieren, direkt antworten,bei google, wikipedia, forum nach dem markierten Wort suchen :( naja, Danke werden folgen, sobald möglich.
 

primus1998

Mitglied
Ahhh Hilfe!!! wollte gerade die kompilierte Datei ausführen, da kam dann auch noch folgende Fehlermeldung:

Z:\Java\Programme\Primzahl>java Primzahltest
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Primzahltest.main(Primzahltest.java:6)


Hier jetzt noch mal die entgültige Version von meinem Primzahltest:

Java:
public class Primzahltest {
    public static void main(String[] args ) 
        {
            int i, b, half, zahl;
            boolean IstPrim;
            zahl = Integer.parseInt(args[0]);
            IstPrim = true;
            half = zahl / 2;
            i = 0;
            if (zahl < 2) 
                {
                    i = i + 1;
                    IstPrim = false;
                }
              
            for (b = 2; b < half; b++) 
                {
                    if (zahl % b == 0);
                        {
                            i = i + 1;
                            System.out.println("Es wurde ein Teiler gefunden");
                        }
                }
            if (i == 0)
                {
                    System.out.println("Diese Zahl ist eine Primzahl");
                    IstPrim = true;
                }
              else
                {
                    IstPrim = false;
                    System.out.println("Diese Zahl ist keine Primzahl");
                }
            if (zahl == 2)
                {
                    System.out.println("Entschuldigung, diese Zahl ist doch eine Primzahl");
                    IstPrim = true;
                    i = 0;
                }
            System.out.println("Die Überprüfung wurde abgeschlossen");
        }
    }

Was habe ich denn jetzt schon wieder übersehen?
 

rme

Top Contributor
Du liest die zu untersuchende Zahl von args[0], das ist das, was hinter dem Namen des Programms beim Aufruf steht. Du rufst das Programm so auf: java Primzahltest

Dadurch ist args aber leer, weil du hinter dem Namen des Programms nichts mehr geschrieben hast. Versuch's mal so:

java Primzahltest 23
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M reached end of file while parsing ---- was heißt das? Java Basics - Anfänger-Themen 4
F Reached end while parsing Java Basics - Anfänger-Themen 6
I Dateien in einem .war - File durchgehen? Java Basics - Anfänger-Themen 1
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
R File.pathSeparator und File.separator Java Basics - Anfänger-Themen 46
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
izoards Prunsrv - Windows Service - .bat file starten Java Basics - Anfänger-Themen 84
I File Uploader... Statusanzeige, Berechnung des Status etc. Java Basics - Anfänger-Themen 0
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
J File length als Prüfwert für Download Java Basics - Anfänger-Themen 5
berserkerdq2 Überprüfen ob eine Schreibberechtigung auf ein file exisitert bzw. ob man dieses file löschen kann, wie? Java Basics - Anfänger-Themen 9
berserkerdq2 IOstreams, was unterscheidet file von z. B. BufferedWriter? Java Basics - Anfänger-Themen 11
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
A java jar-File Java Basics - Anfänger-Themen 1
E Executable jar file fehler Java Basics - Anfänger-Themen 9
I Upload File zu einem Webservice Java Basics - Anfänger-Themen 17
I ZIP File erstellen Java Basics - Anfänger-Themen 10
LeoDerKek Textdatei in JAR-File Java Basics - Anfänger-Themen 4
Tom/S File Java Basics - Anfänger-Themen 10
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
A Checkstyle - File contains tab characters Java Basics - Anfänger-Themen 2
H Java file nicht gefunden Java Basics - Anfänger-Themen 5
C File speichern Java Basics - Anfänger-Themen 5
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
C Pfad zu Properties-File bei ResourceBundle Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
K File (png) in Image laden Java Basics - Anfänger-Themen 3
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
S Input/Output Reader/Writer finden file nicht Java Basics - Anfänger-Themen 3
T Buffered Stream leert Txt File Java Basics - Anfänger-Themen 3
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
Dimax In Java File (nicht in Java Projekt) mysql Driver importieren Java Basics - Anfänger-Themen 3
K File wird in der .Jar nicht gefunden Java Basics - Anfänger-Themen 3
E TXT FILE EINLESEN Java Basics - Anfänger-Themen 4
Trèfle EXCEL-File Laufwerkunabhängig einbinden. Java Basics - Anfänger-Themen 1
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
topi relativer Pfad in einem Runnable JAR file Java Basics - Anfänger-Themen 12
A jar File kleiner bekommen Java Basics - Anfänger-Themen 3
B File öffnen in src/main/webapp Java Basics - Anfänger-Themen 4
K File-Name Vergleich Java Basics - Anfänger-Themen 2
krgewb Runnable JAR File Export Java Basics - Anfänger-Themen 11
S Maxium aus einer File finden Java Basics - Anfänger-Themen 12
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
D Input/Output File exists canRead canWrite Java Basics - Anfänger-Themen 11
B cal4j - Error at line 1:Unexpected end of file Java Basics - Anfänger-Themen 0
P jar file lässt sich nicht ausführen Java Basics - Anfänger-Themen 4
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
F File von Windowsfreigabe laden Java Basics - Anfänger-Themen 1
S java.nio.file.FileSystemException bei Dateizugriff vermeiden Java Basics - Anfänger-Themen 7
Vince42 NIO File Tree in XML umwandeln Java Basics - Anfänger-Themen 10
J Zweidimensionales Array in CSV File exportieren Java Basics - Anfänger-Themen 3
E War-File Problem mit Eclipse Java Basics - Anfänger-Themen 3
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
M Email versenden Outlook, attached File, ohne Anmeldung Java Basics - Anfänger-Themen 4
M Input/Output Word File Kopieren Java Basics - Anfänger-Themen 12
K Runable Jar File erstellen Java Basics - Anfänger-Themen 17
T Java Executable jar file funktioniert nicht Java Basics - Anfänger-Themen 4
sourcecorn Werte aus einem File lesen Java Basics - Anfänger-Themen 6
Kopak'rraf Korruptes zip File. Java Basics - Anfänger-Themen 0
T File für Einstellungen wird nicht geladen Java Basics - Anfänger-Themen 1
S Sounddatei in Jar File integrieren Java Basics - Anfänger-Themen 2
S Index File bauen Java Basics - Anfänger-Themen 5
T Anzeige, wie lange es noch dauert bis ein File gesendet ist. Java Basics - Anfänger-Themen 2
T filereader , file aus programm einlesen Java Basics - Anfänger-Themen 12
Ghostman1711 Itext PDF print File gelockt by Java Java Basics - Anfänger-Themen 15
N Email mit Anhang - File not Found Java Basics - Anfänger-Themen 1
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
Syncopated Pandemonium Compiler-Fehler The constructor MP3File(File) refers to the missing type NoMPEGFramesException Java Basics - Anfänger-Themen 7
S File mit canRead() testen Java Basics - Anfänger-Themen 4
A file.delete funktioniert nicht Java Basics - Anfänger-Themen 15
K Classpath Lesen von Property-File Java Basics - Anfänger-Themen 1
S jar file Java Basics - Anfänger-Themen 19
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
B Dateityp von File bekommen Java Basics - Anfänger-Themen 2
I Automatisch Verzeichnis erstellen bei File erstellen Java Basics - Anfänger-Themen 5
E Große Datenmengen effizient in CSV File speichern Java Basics - Anfänger-Themen 4
I String zu File umwandeln Java Basics - Anfänger-Themen 2
N File virtuell ByteStream Java Basics - Anfänger-Themen 11
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
Anfänger2011 file.isDirectory() liefert falschen Wert!? Java Basics - Anfänger-Themen 1
ms_cikar Jar file mit resource erzuegen Java Basics - Anfänger-Themen 28
E lesen csv file column by column Java Basics - Anfänger-Themen 10
U Anhand von Ant ein War-File erstellen Java Basics - Anfänger-Themen 0
B Quellcode einelsen "line by line" (und abspeichern in file (txt) Java Basics - Anfänger-Themen 7
O Zip-File Inhalt einlesen Java Basics - Anfänger-Themen 3
V Erste Schritte Dateinamen aus einer FIle[] in eine List Java Basics - Anfänger-Themen 11
P Jar File Java Basics - Anfänger-Themen 3
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
S CSV File - "Vergleichen und Sortieren" Java Basics - Anfänger-Themen 3
T Wieso kann ich das jar file nicht starten? Java Basics - Anfänger-Themen 5
S Resourcen-Dateien im Jar-File verfügbar machen (Intellij 14) Java Basics - Anfänger-Themen 14
A Wieso übergibt der nicht die bearbeitete txt file Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben