Kann mir jemand helfen was mit diesen Fehlern gemeint ist ?

charlie20

Mitglied
Zahlenraten.java:7: Fehler: ';' erwartet

Anzahl der Versuche = args.length;

^

Zahlenraten.java:25: Fehler: ';' erwartet

System.out.println( zahl == eingegebeneZahl )} ;

^

Zahlenraten.java:28: Fehler: while erwartet

};
 
"Anzahl der Versuche" ist kein gültiger Variablenname. Das muss schon ein einziges Wort sein, wie "anzahlDerVersuche". Beachte, dass bei Java per Konvention Variablennamen mit einem kleinen Buchstaben beginnen sollten.

Ansonsten kann man nicht viel sagen, weil der Rest vom Code fehlt. Und verwende bitte die Code-Tags: Das </> Symbol im Editor ganz links.
 
Java:
public class Zahlenraten {
    public static void main(String [] args) {
        
        int zahl = Integer.parseInt(args[0]);
double eingegebeneZahl = 1 - 100;

          anzahlderVersuche = args.length;


          do {

             computerRaten(numToGuess);
          double zahl = Math.random();

            if (zahl = eingegebeneZahl) {
         System.out.println(args .length);

            elseif( zahl != eingegebeneZahl ) ;
            while ( zahl != eingegebeneZahl ) {
double zahl = Math.random();
System.out.println( zahl == eingegebeneZahl ) ;
System.out.println( args.length)};
            }
}
 }
}
 
Arbeite mal an deinen Code-Einrückungen. Da kriegt man ja Augenkrebs.
Java:
public class Zahlenraten {
 
    public static void main(String [] args) {
  
        int zahl = Integer.parseInt(args[0]);
        double eingegebeneZahl = 1 - 100;

        anzahlderVersuche = args.length;

        do {
            computerRaten(numToGuess);
            double zahl = Math.random();

            if (zahl = eingegebeneZahl) {
                 System.out.println(args .length);

            elseif( zahl != eingegebeneZahl ) ;
        
            while ( zahl != eingegebeneZahl ) {
                double zahl = Math.random();
                System.out.println( zahl == eingegebeneZahl ) ;
                System.out.println( args.length)};
            }
        }
     }
}

Schau auch mal, ob die öffnenden zu den schließenden geschweiften Klammern passen. Es sind allerdings noch mehr Fehler enthalten...

Das ist ne gute Übung!

EDIT: Vermutlich ist es auch genau das, eine Übung zur Syntax. Der Sinn des Codes an sich ist - irgendwie zweifelhaft...
 
Zuletzt bearbeitet:
jetzt kommt

java:27: Fehler: Dateiende beim Parsen erreicht


}


^


Zahlenraten.java:27: Fehler: Dateiende beim Parsen erreicht


}


Java:
public class Zahlenraten {

    public static void main(String [] args) {
        
        int zahl = Integer.parseInt(args[0]);
        double eingegebeneZahl = 1 - 100;
        anzahlderVersuche = args.length;


          do {

             computerRaten(numToGuess);
             double zahl = Math.random();

            if (zahl == eingegebeneZahl) {
                System.out.println(args .length);

            elseif( zahl != eingegebeneZahl ) ;
            double zahl = Math.random();


            while ( zahl != eingegebeneZahl ) {
            double zahl = Math.random();
             }
          
   }
}
 
Hier noch mal der Code, deiner Klammerung entsprechend eingerückt:
Java:
public class Zahlenraten {
 
    public static void main(String [] args) {
        int zahl = Integer.parseInt(args[0]);
        double eingegebeneZahl = 1 - 100;
        anzahlderVersuche = args.length;
    
        do {
            computerRaten(numToGuess);
            double zahl = Math.random();
            if (zahl == eingegebeneZahl) {
                System.out.println(args .length);
                elseif( zahl != eingegebeneZahl ) ;
                double zahl = Math.random();
                while ( zahl != eingegebeneZahl ) {
                    double zahl = Math.random();
                }   
            }
        }

Damit sollte das Problem auf den ersten Blick ersichtlich sein, oder?
 
Zuletzt bearbeitet:
ok danke aber jetzt kommt da
Zahlenraten.java:19: Fehler: Dateiende beim Parsen erreicht

}
Natürlich! Du musst den Code halt korrigieren.

Hast du denn das Problem erkannt? Es ist ja nun deutlich sichtbar.

Eine korrekte Klasse könnte so aussehen:
Java:
class Foo {
  
    void doSomething() {
        // code 
    }
}

Vergleiche die Klammerung! Du erkennst schon an der Klammerebene (Einrückung), ob alles stimmt.
 
Evtl. macht es Sinn, sich da noch einmal von Anfang an drum zu kümmern.

1. Immer erst genau überlegen, was denn gemacht werden soll. Also den Algorithmus verstehen. Dazu diesen am Anfang im Detail formulieren.
(Und das macht man nicht in Java! Du musst es so in Worte fassen, dass es jeder nur mit der Anleitung machen kann!)

2. Dann Schritt für Schritt die Beschreibung umsetzen. Dabei wirklich IMMER die Dokumentation zeitgleich zu rate ziehen.

In dem Code wüsste ich nicht, wo ich anfangen sollte. Da ist ja fast alles vertreten - von Dingen, wo ich nicht einmal erahne, was sie sollen über Zuweisung statt Vergleich bis hin zu Konstrukten, wo ich unsicher bin, woran das scheitert. Das Prinzip von Code Blöcken wurde auf jeden Fall nicht verstanden...

Daher: wirklich einmal sauber anfangen. Und dabei genau überlegen, was du machst und wie das, was Du dann versuchst umzusetzen, funktioniert! Und das, was Du da derzeit hast, das vergisst Du am Besten komplett.
 
der computer soll eine zahl generieren und mit einer angegebenen Zahl vergleichen, wenn diese miteinander übereinstimmen, dann soll die länge der versuche ausgegeben werden, wenn nicht dann soll das verfahren solange wiederholt werden bis die zahlen übereinstimmen
 
Evtl. macht es Sinn, sich da noch einmal von Anfang an drum zu kümmern.
Du hast in allem Recht. Aber der Code bietet eine wirklich gute Gelegenheit zu Lernen mit Compilerfehlern umzugehen. Wenn er den Fehler mit der Klammerung korrigiert hat, dann kommen noch ein paar weitere. Und das sollte man schon einigermaßen drauf haben, damit umzugehen und Fehlermeldungen zu verstehen.

Ansonsten tut der Code natürlich nicht was er soll. Stimmt schon. 🙂

@charlie20 Nicht entmutigen lassen! Das geht am Anfang jeden so (Stichwort: "Ochs vorm Berg"), aber Übung macht den Meister. Wir unterstützen gerne, aber i.d.R. in der Art, dass du den Fehler am Ende selbst erkennen kannst. Du möchtest ja was lernen. 🙂
 
der computer soll eine zahl generieren und mit einer angegebenen Zahl vergleichen, wenn diese miteinander übereinstimmen, dann soll die länge der versuche ausgegeben werden, wenn nicht dann soll das verfahren solange wiederholt werden bis die zahlen übereinstimmen
Das muss ausführlicher sein ... versuche es klar zu formulieren ... Woher kommt die angegebene Zahl? .. was soll der Computer wann genau machen?

Und wie gefällt Dir dir eine Beschreibung wie:
  • Fahre mit dem Auto 250km zu mir
  • Wenn Du da bist: Nimm den Computer aus dem Kofferraum
Ups! Computer? Kofferraum? Der Kofferraum ist leer!
Die Beschreibung würdest Du bestimmt als mangelhaft abstempeln.

Daher: Überlege es Dir mit Stift und Papier. Es gibt nichts, das Du Dir einfach so im Kopf merkst! Es muss alles irgendwo auf dem Zettel stehen.
Du willst also irgendwoher eine "angegebene Zahl" bekommen und mit der etwas machen ... Das ist schon etwas, das dann irgendwo auf dem Zettel stehen muss oder so ...

Aber der Code bietet eine wirklich gute Gelegenheit zu Lernen mit Compilerfehlern umzugehen.
Ich sehe da vor allem eine Menge, die nicht funktioniert und die schlicht Frust hervorrufen muss. Kleine Erfolge kann er damit nicht bekommen.

Wenn man etwas neu aufbaut, dann kann man das Schritt für Schritt machen. Jeden Schritt kann man testen. Wenn man es sehr übertreibt dann mit etwas wie:
Java:
public class Zahlenraten {
 
    public static void main(String [] args) {
        int zahl = Integer.parseInt(args[0]);
        System.out.println(zahl);
    }
}
==> Heya - Erfolg! Die als Parameter angegebene Zahl wird ausgegeben. Die Zuweisung klappt!
Und mit dem Erfolgserlebnis dann den nächsten Schritt angehen!

Also wie mit dem Papa und dem Klößchen ... Der isst die auch immer einen nach dem anderen!
 

Zurück
Oben