SemaTrain Logo Ein Fachportal des SemaTrain Trainingsinstituts

Konsolenanwendung (Mini-Projekt)

Sie setzen das Gelernte zusammen: Eingabe → Logik → Ausgabe. Eine kleine Java-Konsolenanwendung im SemaTrain-Kontext.

Hinweis: Werte/Regeln sind Beispieldaten – Fokus liegt auf Struktur & Logik.

Java Grundlagen Schulung – Kursbezug

Dieses Kapitel ist Teil des Lernpfads zur Java Grundlagen Schulung. Fokus: kleines, komplettes Programm (Eingabe → Verarbeitung → Ausgabe).

Hinweis: Regeln/Preise sind Beispielwerte – wichtig ist die Struktur.

Ziel dieses Kapitels: Sie bauen eine kleine Java-App, die Eingaben liest, Entscheidungen trifft, Berechnungen macht und am Ende sauber ausgibt.

Worum geht’s?

Lehr-/Lernziele

Nach diesem Kapitel können Sie …

Das Grundmuster (Input → Process → Output)

Merke: Input → Process → Output (Java)
// 1) Input: Werte einlesen
// 2) Process: Regeln/Berechnungen
// 3) Output: Ergebnisse ausgeben

Eingaben lesen mit Scanner

Tipp: Nach nextInt()/nextDouble() einmal nextLine() konsumieren, sonst „verschluckt“ Java Zeilenumbrüche.

Scanner: String + int lesen (Java)
import java.util.Scanner;

public class ScannerBasics {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    System.out.print("Name: ");
    String name = sc.nextLine();

    System.out.print("Dauer (Tage): ");
    int tage = sc.nextInt();
    sc.nextLine(); // Zeilenumbruch konsumieren

    System.out.println("Hallo " + name + ", Dauer: " + tage + " Tage");
    sc.close();
  }
}

Mini-App: Kurs-Konfigurator (Beispiel)

Dieses Beispiel zeigt die Bausteine aus den Lernzielen: (LZ1) Input/Output, (LZ2) Validierung, (LZ3) Logik (Bedingungen/Schleife).

Beispiel: Kurs-Konfigurator (Input → Process → Output) (Java)
import java.util.Scanner;

public class KursKonfiguratorBeispiel {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    System.out.print("Kursname: ");
    String kursName = sc.nextLine().trim();

    System.out.print("Format (Online/Praesenz): ");
    String format = sc.nextLine().trim();

    System.out.print("Ort (nur Praesenz, sonst leer): ");
    String ort = sc.nextLine().trim();

    System.out.print("Dauer in Tagen (1-10): ");
    int dauer = sc.nextInt();

    System.out.print("Preis in Euro (Beispiel): ");
    double preis = sc.nextDouble();

    if (dauer < 1 || dauer > 10) {
      System.out.println("Ungültige Dauer. Bitte 1 bis 10 eingeben.");
      sc.close();
      return;
    }

    boolean istOnline = format.equalsIgnoreCase("Online");
    String ausgabeOrt = istOnline ? "remote" : (ort.isEmpty() ? "(bitte Ort angeben)" : ort);

    // Beispiel-Regel: Online & dauer >= 3 -> 10% Rabatt
    double rabatt = (istOnline && dauer >= 3) ? 0.10 : 0.0;
    double endpreis = preis * (1 - rabatt);

    System.out.println("\n--- Zusammenfassung ---");
    System.out.println("Kurs: " + kursName);
    System.out.println("Format: " + (istOnline ? "Online" : "Praesenz") + " | Ort: " + ausgabeOrt);
    System.out.println("Dauer: " + dauer + " Tage");
    System.out.println("Preis (Beispiel): " + endpreis + " €");

    System.out.println("\nTagesplan:");
    for (int tag = 1; tag <= dauer; tag++) {
      System.out.println("Tag " + tag + ": Inhalte & Übungen");
    }

    sc.close();
  }
}

Praxisaufgabe (Mini)

Beitrag zu den Lehr-/Lernzielen: LZ1 (I/O & Struktur) · LZ2 (Validierung) · LZ3 (Regeln/Logik)

  1. Lesen Sie ein: kursName, format, dauer, preis. (LZ1)
  2. Validieren Sie: dauer muss zwischen 1 und 10 liegen (sonst Hinweis & Abbruch). (LZ2)
  3. Wenn Online & dauer >= 3: 10% Rabatt berechnen. (LZ3)
  4. Geben Sie eine kompakte Zusammenfassung aus. (LZ1)
Lösung anzeigen
Lösung: Praxis (Validierung + Rabatt + Ausgabe) (Java)
import java.util.Scanner;

public class KursPraxis {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    System.out.print("Kursname: ");
    String kursName = sc.nextLine().trim();

    System.out.print("Format (Online/Praesenz): ");
    String format = sc.nextLine().trim();

    System.out.print("Dauer (1-10): ");
    int dauer = sc.nextInt();

    System.out.print("Preis (Beispiel): ");
    double preis = sc.nextDouble();

    if (dauer < 1 || dauer > 10) {
      System.out.println("Ungültige Dauer. Bitte 1 bis 10 eingeben.");
      sc.close();
      return;
    }

    boolean istOnline = format.equalsIgnoreCase("Online");
    double rabatt = (istOnline && dauer >= 3) ? 0.10 : 0.0;
    double endpreis = preis * (1 - rabatt);

    System.out.println("\nKurs: " + kursName +
      " | Format: " + (istOnline ? "Online" : "Praesenz") +
      " | Dauer: " + dauer + " Tage" +
      " | Preis (Beispiel): " + endpreis + " €");

    sc.close();
  }
}

Kurz-Takeaways

Primärreferenzen

Geprüfte Java-Referenzen

Die fachlichen Aussagen dieser Lektion werden gegen zuständige Primärreferenzen geprüft. Erklärungen, Beispiele, Aufgaben, Quizfragen und Lösungen sind eigenständige SemaTrain-Inhalte.

Lektionsprofil: Konsoleneingabe und -ausgabe

Kursbasis: JDK 25 LTS

Feature-Release zum Prüfdatum: Java SE / JDK 27

Quellenprüfung: 2026-09-17

Java Platform, Standard Edition & JDK Specifications Version 25

Quellentyp: Primärspezifikation

Verantwortliche Referenzstelle: Oracle – Java SE

Versionsbezug: Java SE 25 / JDK 25

Geltungsbereich: Java-Sprache, JVM, Java-SE-Plattform und JDK-Spezifikationen.

Offizielle Primärreferenz

JDK 25 Documentation

Quellentyp: Herstellerdokumentation

Verantwortliche Referenzstelle: Oracle

Versionsbezug: JDK 25

Geltungsbereich: Offizielle JDK-API, Werkzeuge und Plattformfunktionen.

Offizielle Primärreferenz

Oracle Java SE Support Roadmap

Quellentyp: Hersteller-Roadmap

Verantwortliche Referenzstelle: Oracle

Versionsbezug: Prüfstand 17.09.2026

Geltungsbereich: Einordnung von LTS- und Feature-Releases.

Offizielle Primärreferenz

Java Language and Virtual Machine Specifications

Quellentyp: Primärspezifikation

Verantwortliche Referenzstelle: Oracle – Java SE

Versionsbezug: Java SE 27 / 26 / 25

Geltungsbereich: Offizieller Versionsindex der Java-Sprach- und JVM-Spezifikationen.

Offizielle Primärreferenz

Scanner API

Quellentyp: API-Primärreferenz

Verantwortliche Referenzstelle: Oracle – Java SE

Versionsbezug: JDK 25

Geltungsbereich: Token- und Texteingabe mit java.util.Scanner.

Offizielle Primärreferenz

System API

Quellentyp: API-Primärreferenz

Verantwortliche Referenzstelle: Oracle – Java SE

Versionsbezug: JDK 25

Geltungsbereich: Standard-Ein- und -Ausgabeströme System.in und System.out.

Offizielle Primärreferenz

Java Quellen und Methodik

Quiz: Konsolenanwendung (Lehr-/Lernziele Check)

1. (LZ1) Was beschreibt das Muster „Input → Process → Output“ am besten?

2. (LZ1) Wofür wird Scanner in einer Konsolenanwendung typischerweise verwendet?

3. (LZ2) Warum ist Validierung (z.B. Dauer 1–10) wichtig?

4. (LZ3) Welche Aussage zu if/else ist korrekt?

Praxisaufgabe

Mini-Projekt: „Kurs-Checker“ (Eingabe → Regeln → Ausgabe)

Beitrag zu den Lehr-/Lernzielen: LZ1 (I/O & Struktur) & LZ2 (Validierung) & LZ3 (Regeln/Logik).

Sie bauen eine Konsolen-App, die Kursdaten abfragt, prüft und eine Ausgabe erzeugt.

Lösung anzeigen
Lösung: Kurs-Checker (Java)
import java.util.Scanner;

public class KursChecker {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    System.out.print("Kursname: ");
    String kursName = sc.nextLine().trim();

    System.out.print("Format (Online/Praesenz): ");
    String format = sc.nextLine().trim();

    System.out.print("Dauer (1-10): ");
    int dauer = sc.nextInt();

    System.out.print("Preis (Beispiel): ");
    double preis = sc.nextDouble();

    if (dauer < 1 || dauer > 10) {
      System.out.println("Fehler: Dauer muss zwischen 1 und 10 liegen.");
      sc.close();
      return;
    }

    boolean istOnline = format.equalsIgnoreCase("Online");
    double rabatt = (istOnline && dauer >= 3) ? 0.10 : 0.0;
    double endpreis = preis * (1 - rabatt);

    System.out.println("\nKurs: " + kursName);
    System.out.println("Format: " + (istOnline ? "Online" : "Praesenz"));
    System.out.println("Dauer: " + dauer + " Tage");
    System.out.println("Preis (Beispiel): " + endpreis + " €");

    for (int tag = 1; tag <= dauer; tag++) {
      System.out.println("Tag " + tag + ": Inhalte & Übungen");
    }

    sc.close();
  }
}

SemaTrain Trainingsinstitut

Java praktisch vertiefen

Diese Wissenslektion ist Bestandteil des SemaTrain-Java-Lernpfads. Das begleitete Training ergänzt Wissen durch Programmierpraxis, Feedback und Transfer.

Zum Java Trainingscenter Quellen und Methodik