0 Daumen
240 Aufrufe

Frage:

Wo sind die Fehler ?


Code:

import java.util.Scanner;

public class Umsatzanalyse {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in); //Zuerst wird eine Instanz des Scanners erstellt, um anschließend 5 Eingaben des Nutzers einzulesen
     
      int tag1 = scanner.nextInt(); //Der Umsatz fuer Tag 1 wird als Ganze Zahl eingelesen und tag1 damit initialisiert
      int tag2 = scanner.nextInt(); //Der Umsatz fuer Tag 2 wird als Ganze Zahl eingelesen und tag2 damit initialisiert
      int tag3 = scanner.nextInt(); //Der Umsatz fuer Tag 3 wird als Ganze Zahl eingelesen und tag3 damit initialisiert
      int tag4 = scanner.nextInt(); //Der Umsatz fuer Tag 4 wird als Ganze Zahl eingelesen und tag4 damit initialisiert
     
      int waehrung = scanner.nextInt(); //Der Waehrungstyp wird als Wort eingelesen und waehrung damit initialisiert
     
      char waehrungskuerzel; //Eine Kurzform fuer die Waehrung wird deklariert...
      waehrungskuerzel = waehrung(1); //... und mit dem ersten Buchstaben aus waehrung initialisiert

      int umsaetze = new int[4]; //Die Umsaetze sollen in einem Array gespeichert werden, dieses wird hier mit einer Größe von 4 initialisiert
     
      umsaetze[0] = tag1; //Tag 1 wird der Liste fuer Umsaetze hinzugefuegt
      umsaetze[1] = tag2; //Tag 2 wird der Liste fuer Umsaetze hinzugefuegt
      umsaetze[2] = tag3; //Tag 3 wird der Liste fuer Umsaetze hinzugefuegt
      umsaetze[3] = tag4; //Tag 4 wird der Liste fuer Umsaetze hinzugefuegt

      int besondererTag = 4; //besondererTag wird mit dem Wert 4 initialisiert
     
     
      System.out.println("An Tag " + besondererTag + " wurde ein Umsatz von " + umsaetze+besondererTag + " " + waehrung + " gemacht!"); //Der Umsatz fuer den besonderen Tag 4 wird in angegebener Waehrung aus dem Array ausgelesen
     
      System.out.println(umsaetze+ besondererTag-1 + waehrungskuerzel); //Die vorherige Ausgabe erfolgt nochmals in Kurzform mit dem waehrungskuerzel
     
     
      int summe = tag1; //Die gleich zu bildende Summe wird hier zuerst mit dem Wert von Tag 1 initialisiert
     
      int summe = summe + umsaetze[1] + umsaetze[2] + umsaetze[3]; //Summe der Umsaetze wird gebildet und summe damit neu zugewiesen
     
      System.out.println("Wow, in der Summe sind " + summe + " " + waehrungskuerzel + " zusammengekommen."); //Die Summe Umsatz wird gebildet und ausgegeben

     
      //Zuletzt folgt noch eine weise Aussage die ausgegeben werden soll:
      //Weitere Finanzen finden Sie im Ordner "Erfolg" unter C:\Daten\Geheim
      System.out.println("Weitere Umsatzinformationen finden Sie im Ordner "+ "Erfolg" +"unter C:/Daten/Geheim");
  }
}
Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Identifikation und Korrektur von Fehlern im Code

Der gegebene Java-Code hat mehrere Fehler und Probleme. Diese reichen von Syntaxfehlern bis hin zu logischen Fehlern. Ich werde die Fehler analysieren und entsprechend korrigieren.

1. Kompilationsfehler:
- Der Kommentar „Der Waehrungstyp wird als Wort eingelesen...“ ist falsch, da scanner.nextInt(); eine Ganzzahl erwartet und keine Zeichenkette.
- waehrungskuerzel = waehrung(1); sollte waehrung.charAt(0); sein (Typfehler und falsches Argument).

2. Kompilationsfehler:
- umsaetze-Array sollte als int[] umsaetze deklariert werden, statt int umsaetze.

3. Logische Fehler:
- Die Variable besondererTag wird als 4 deklariert, aber Array-Indexing beginnt bei 0.
- Zwei Initialisierungen der Variable summe, die inkorrekt sind.

4. Ausgabe Fehler:
- Fehler bei der Zeichenkette Zusammensetzung in der System.out.println-Methode.

Sehen wir uns den korrigierten Code an:

java
import java.util.Scanner;

public class Umsatzanalyse {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // Instanz des Scanners
        
        int tag1 = scanner.nextInt(); // Umsatz für Tag 1
        int tag2 = scanner.nextInt(); // Umsatz für Tag 2
        int tag3 = scanner.nextInt(); // Umsatz für Tag 3
        int tag4 = scanner.nextInt(); // Umsatz für Tag 4
        scanner.nextLine(); // Um den Zeilenumbruch zu konsumieren

        String waehrung = scanner.nextLine(); // Währung als Wort eingelesen
        char waehrungskuerzel; // Kurzform für die Währung
        waehrungskuerzel = waehrung.charAt(0); // Mit dem ersten Buchstaben aus Währung initialisiert

        int[] umsaetze = new int[4]; // Array für Umsätze
        umsaetze[0] = tag1;
        umsaetze[1] = tag2;
        umsaetze[2] = tag3;
        umsaetze[3] = tag4;

        int besondererTag = 4; // Besondere Tag (0-indexiert wäre 3)

        // Ausgabe für besonderen Tag
        System.out.println("An Tag " + besondererTag + " wurde ein Umsatz von " 
                           + umsaetze[besondererTag - 1] + " " + waehrung + " gemacht!");

        // Ausgabe in Kurzform mit Währungskürzel
        System.out.println(umsaetze[besondererTag - 1] + "" + waehrungskuerzel);

        // Summe der Umsätze
        int summe = tag1 + umsaetze[1] + umsaetze[2] + umsaetze[3];
        System.out.println("Wow, in der Summe sind " + summe + " " + waehrungskuerzel + " zusammengekommen.");

        // Weise Aussage mit Verzeichnispfad
        System.out.println("Weitere Umsatzinformationen finden Sie im Ordner \"Erfolg\" unter C:/Daten/Geheim");
        
        scanner.close(); // Scanner schließen
    }
}


Erklärungen

- Wechsel des Datentyps für waehrung:
Die Variable waehrung muss als String deklariert werden und verwendet scanner.nextLine() zum Lesen.

- Initialisierung des char waehrungskuerzel:
Die Methode charAt(int index) wurde verwendet anstelle einer nicht existierenden waehrung(1) Methode.

- Deklaration des Arrays umsaetze:
Das korrekte Deklarationsformat int[] umsaetze wurde verwendet.

- Korrektur der Summenvariable summe:
Die doppelte Initialisierung wurde entfernt und die korrekte Summierung erfolgt.

- Klarstellung der Ausgabe:
Richtige Verkettung von Strings und Variablen in den System.out.println Anweisungen.

Mit diesen Korrekturen sollte der Code korrekt kompilieren und ausführen.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community