0 Daumen
169 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 4,6 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community