Compiler-Fehler Fehler beim Ausführen des Codes

Diskutiere Fehler beim Ausführen des Codes im Java Basics - Anfänger-Themen Bereich.
M

Mechatronix

Hallo,
ich bin ziemlich neu und wollte einen kleinen Taschenrechner programmieren.
Als ich aber den untenstehenden Code versuchte in Visual Studio Code auszuführen,
hat es nicht geklappt. Es zeigte mir im Code keine Fehler an aber im Terminal die folgenden Fehler an:
Java:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
        next cannot be resolved or is not a field
        Duplicate local variable scan
        Syntax error, insert ")" to complete ClassInstanceCreationExpression
        Syntax error, insert ";" to complete BlockStatements
        Syste cannot be resolved to a variable
        Syntax error, insert ":: IdentifierOrNew" to complete ReferenceExpression
        Syntax error, insert ";" to complete LocalVariableDeclarationStatement
        nextDou cannot be resolved or is not a field
        Syntax error, insert ":: IdentifierOrNew" to complete ReferenceExpression
        Syntax error, insert ";" to complete LocalVariableDeclarationStatement
        nextDou cannot be resolved or is not a field
        Syntax error, insert ":: IdentifierOrNew" to complete ReferenceExpression
        Syntax error, insert ";" to complete LocalVariableDeclarationStatement
        sum cannot be resolved to a variable
        Duplicate local variable scan
        Duplicate local variable scan
        fak cannot be resolved to a variable
        Syntax error on token "tor1", delete this token
        Duplicate local variable scan

        at Rechner.main(Rechner.java:7)
Kann mir bitte irgend jemand helfen??

Danke!!:)

P.S. Der Code:
Java:
public class Rechner{
    public static void main(String[] args){

        // Eingabe der Rechenart
        final java.util.Scanner scan = new java.util.Scanner(System.in);
        System.out.print("Geben sie an was ausgefürt werden soll('plus','minus','geteilt','mal'): ");
        final var str = scan.next;
        scan.close();

        // Ausgabe der gewälten Rechenart
        System.out.println("Sie haben " + str + " gewählt.");

        // Abfrage Plus
        if (str.equals("plus")) {
            final java.util.Scanner scan = new java.util.Scanner(Syste
            System.out.print("Geben sie die erste zu addierende Zahl an: ");
            final double summand1 = scan.nextDou
            System.out.print("Geben sie die zweite zu addierende Zahl an: ");
            final double summand2 = scan.nextDou
            scan.close();

            final double summe = summand1 + sum
            System.out.println("Das ergebnis der Addition ist: " + summe);
        }

        // Abfrage Minus
        if (str.equals("minus")) {
            final java.util.Scanner scan = new java.util.Scanner(System.in);
            System.out.print("Geben sie die erste zu suptrahierende Zahl an: ");
            final double minuent = scan.nextDouble();
            System.out.print("Geben sie die zweite zu suptrahierende Zahl an: ");
            final double suptrahend = scan.nextDouble();
            scan.close();

            final double differenz = minuent - suptrahend;
            System.out.println("Das ergebnis der Suptrktion ist: " + differenz);
        }

        // Abfrage Mal
        if (str.equals("mal")) {
            final java.util.Scanner scan = new java.util.Scanner(System.in);
            System.out.print("Geben sie die erste zu multiplizierende Zahl an: ");
            final double faktor1 = scan.nextDouble();
            System.out.print("Geben sie die zweite zu multiplizierende Zahl an: ");
            final double faktor2 = scan.nextDouble();
            scan.close();

            final double produckt = fak tor1 *faktor2;
            System.out.println("Das ergebnis der Multiplikation ist: " + produckt);
        }

        // Abfrage Geteilt
        if (str.equals("geteilt")) {
            final java.util.Scanner scan = new java.util.Scanner(System.in);
            System.out.print("Geben sie die erste zu dividierende Zahl an: ");
            final double dividend = scan.nextDouble();
            System.out.print("Geben sie die zweite zu dividierende Zahl an: ");
            final double divisor = scan.nextDouble();
            scan.close();

            final double qoutient = dividend / divisor;
            System.out.println("Das ergebnis der Division ist: " + qoutient);
        }

    }
}
 
Zuletzt bearbeitet von einem Moderator:
L

LimDul

Da fehlt eine Menge an Zeilenenden
Java:
       final var str = scan.next;
// Soll (vermulich)
       final var str = scan.next();
Im Plus Zweig sind die Zeilen auch abgeschnitten, da fehlen immer ein paar Zeichen am Ende der zeile
 
MoxxiManagarm

MoxxiManagarm

Bei Abfrage Plus fehlt die Hälfte, vergleiche es doch mal den anderen Abfragen. Abgesehen davon: Du brauchst nur einen Scanner und Scanner von System.in schließt man typischer Weise nicht.

Java:
final var str = scan.next;
next ist eine Methode, kein Feld. Bitte mit () aufrufen.

PS.: Es heißt Subtraktion
 
M

Mechatronix

Danke euch allen hier nochmal der Code:
Java:
public class Rechner{
    public static void main(String[] args){

        // Eingabe der Rechenart
        final java.util.Scanner scan = new java.util.Scanner(System.in);
        System.out.print("Geben sie an was ausgefürt werden soll('plus','minus','geteilt','mal'): ");
        final var str = scan.next;

        // Ausgabe der gewälten Rechenart
        System.out.println("Sie haben " + str + " gewählt.");

        // Abfrage Plus
        if (str.equals("plus")) {
            System.out.print("Geben sie die erste zu addierende Zahl an: ");
            final double summand1 = scan.nextDouble();
            System.out.print("Geben sie die zweite zu addierende Zahl an: ");
            final double summand2 = scan.nextDouble();

            final double summe = summand1 + sum
            System.out.println("Das ergebnis der Addition ist: " + summe);
        }

        // Abfrage Minus
        if (str.equals("minus")) {
            System.out.print("Geben sie die erste zu subtrahierende Zahl an: ");
            final double minuent = scan.nextDouble();
            System.out.print("Geben sie die zweite zu subtrahierende Zahl an: ");
            final double subtrahend = scan.nextDouble();

            final double differenz = minuent - subtrahend;
            System.out.println("Das ergebnis der Subtrktion ist: " + differenz);
        }

        // Abfrage Mal
        if (str.equals("mal")) {
            System.out.print("Geben sie die erste zu multiplizierende Zahl an: ");
            final double faktor1 = scan.nextDouble();
            System.out.print("Geben sie die zweite zu multiplizierende Zahl an: ");
            final double faktor2 = scan.nextDouble();

            final double produckt = fak tor1 *faktor2;
            System.out.println("Das ergebnis der Multiplikation ist: " + produckt);
        }

        // Abfrage Geteilt
        if (str.equals("geteilt")) {
            System.out.print("Geben sie die erste zu dividierende Zahl an: ");
            final double dividend = scan.nextDouble();
            System.out.print("Geben sie die zweite zu dividierende Zahl an: ");
            final double divisor = scan.nextDouble();

            final double qoutient = dividend / divisor;
            System.out.println("Das ergebnis der Division ist: " + qoutient);
        }

    }
}
Die errors sind:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Duplicate local variable scan
Syntax error, insert ")" to complete ClassInstanceCreationExpression
Syntax error, insert ";" to complete BlockStatements
Syste cannot be resolved to a variable
Syntax error, insert ":: IdentifierOrNew" to complete ReferenceExpression
Syntax error, insert ";" to complete LocalVariableDeclarationStatement
sum cannot be resolved to a variable
Duplicate local variable scan
Duplicate local variable scan
fak cannot be resolved to a variable
Syntax error on token "tor1", delete this token
Duplicate local variable scan


at Rechner.main(Rechner.java:15)
 
L

LimDul

Bei Abfrage Plus fehlt die Hälfte, vergleiche es doch mal den anderen Abfragen. Abgesehen davon: Du brauchst nur einen Scanner und Scanner von System.in schließt man typischer Weise nicht.
Da ist die Antwort. Das Die IDE dir keine Fehler anzeigt, wage ich auch mal zu bezweifeln - starte die sonst mal neu. Ansonsten steht in der Exception die Zeile drin, dann schau dir die Zeile mal an
 
MoxxiManagarm

MoxxiManagarm

Da fehlt eine Menge an Zeilenenden
Java:
       final var str = scan.next;
// Soll (vermulich)
       final var str = scan.next();
Im Plus Zweig sind die Zeilen auch abgeschnitten, da fehlen immer ein paar Zeichen am Ende der zeile
- Das hast du in deinem Code weiterhin nicht.
- In der Summenzeile fehlt weiterhin ein Semikolon.
- faktor1 hat weiterhin das Leerzeichen (das sieht man im Screen von @krgewb gut)
- Auf deine Rechtschreibung gehe ich mal nicht weiter ein :D
 
M

Mechatronix

Danke euch allen ich habe es geschafft!!😊
Tschuldige bin sehr schusselig gewesen.
Aber bin sehr neu hier. und kann bisher nur HTML und habe meine eigene Website(Was nicht viele in der 6. Klasse von sich behaupten können).
Hier der Fertige Code:
Java:
public class Rechner{
    public static void main(String[] args){

        // Eingabe der Rechenart
        final java.util.Scanner scan = new java.util.Scanner(System.in);
        System.out.print("Geben sie an was ausgefürt werden soll('plus','minus','geteilt','mal'): ");
        final var str = scan.next();

        // Ausgabe der gewälten Rechenart
        System.out.println("Sie haben " + str + " gewählt.");

        // Abfrage Plus
        if (str.equals("plus")) {
            System.out.print("Geben sie die erste zu addierende Zahl an: ");
            final double summand1 = scan.nextDouble();
            System.out.print("Geben sie die zweite zu addierende Zahl an: ");
            final double summand2 = scan.nextDouble();
            scan.close();

            final double summe = summand1 + summand2;
            System.out.println("Das ergebnis der Addition ist: " + summe);
        }

        // Abfrage Minus
        if (str.equals("minus")) {
            System.out.print("Geben sie die erste zu subtrahierende Zahl an: ");
            final double minuent = scan.nextDouble();
            System.out.print("Geben sie die zweite zu subtrahierende Zahl an: ");
            final double subtrahend = scan.nextDouble();
            scan.close();

            final double differenz = minuent - subtrahend;
            System.out.println("Das ergebnis der Subtrktion ist: " + differenz);
        }

        // Abfrage Mal
        if (str.equals("mal")) {
            System.out.print("Geben sie die erste zu multiplizierende Zahl an: ");
            final double faktor1 = scan.nextDouble();
            System.out.print("Geben sie die zweite zu multiplizierende Zahl an: ");
            final double faktor2 = scan.nextDouble();
            scan.close();

            final double produckt = faktor1 *faktor2;
            System.out.println("Das ergebnis der Multiplikation ist: " + produckt);
        }

        // Abfrage Geteilt
        if (str.equals("geteilt")) {
            System.out.print("Geben sie die erste zu dividierende Zahl an: ");
            final double dividend = scan.nextDouble();
            System.out.print("Geben sie die zweite zu dividierende Zahl an: ");
            final double divisor = scan.nextDouble();
            scan.close();

            final double qoutient = dividend / divisor;
            System.out.println("Das ergebnis der Division ist: " + qoutient);
        }

    }
}
Danke und bis bald😃
 
MoxxiManagarm

MoxxiManagarm

N

NoName2

Einen Tipp an @Mechatronix : Du solltest keine Robots auf "deiner" Seite zulassen, weil sonst könnte ich jetzt versuchen, die URL anhand der Texte zu er-googlen.

Zweitens ist es zwar bemerkenswert, dass du in der 6. Klasse bereits programmieren kannst, und eventuell sogar Klassen übersprungen hast, dennoch frage ich mich, warum es nötig ist, dass du in deinem Alter bereits eine eigene Homepage brauchst.

Wer oder was soll dadurch worauf aufmerksam gemacht werden? Firmen können es nicht sein, denn die stellen keine Kinder und Jugendlichen ein...

Ich bin selber hochbegabt, würde aber immer darauf aufpassen, meinen Namen nicht publik zu machen. Das Internet ist sehr träge in puncto Sachen vergessen.
 
MoxxiManagarm

MoxxiManagarm

Diese Statistik gilt für das System "Gesellschaft" und kann durch die Überführung in ein anderes System stark verfälscht werden. Das System "Java-Forum" hat als System von Entwicklern mit ausgeprägten logischen und analytischen Fähigkeiten durchaus Potenzial die Aussage einfach nichtig zu machen.
 
Zuletzt bearbeitet:
Thema: 

Fehler beim Ausführen des Codes

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben