Dein erstes Java-Programm
Schreibe dein erstes richtiges Java-Programm mit Variablen, Benutzereingabe und Logik. Lerne die Grundlagen von System.out und Scanner.
Dein erstes Java-Programm
Du hast Java installiert und IntelliJ IDEA eingerichtet — jetzt wird es Zeit, dein erstes richtiges Programm zu schreiben! In diesem Kapitel lernst du, wie du Text ausgibst, Benutzereingaben liest und einfache Berechnungen durchfuehrst.
Hallo Welt — aber richtig
Lass uns mit dem Klassiker starten und ihn dann erweitern:
public class MeinErstesProgramm {
public static void main(String[] args) {
System.out.println("Hallo Welt!");
System.out.println("Ich lerne gerade Java!");
System.out.println("Das macht Spass!");
}
}
Ausgabe:
Hallo Welt!
Ich lerne gerade Java!
Das macht Spass!
Was passiert hier?
System.out.println()gibt Text auf der Konsole aus und macht einen ZeilenumbruchSystem.out.print()gibt Text aus ohne Zeilenumbruch- Jede Anweisung endet mit einem Semikolon (
;)
System.out.print("Hallo ");
System.out.print("Welt");
System.out.println("!"); // Zeilenumbruch am Ende
System.out.println("Neue Zeile");
Ausgabe:
Hallo Welt!
Neue Zeile
Variablen — Daten speichern
Variablen sind wie beschriftete Boxen, in denen du Werte speichern kannst:
public class Variablen {
public static void main(String[] args) {
// Variablen deklarieren und initialisieren
String name = "Max";
int alter = 25;
double groesse = 1.82;
boolean istStudent = true;
// Ausgabe
System.out.println("Name: " + name);
System.out.println("Alter: " + alter);
System.out.println("Groesse: " + groesse + " m");
System.out.println("Student: " + istStudent);
}
}
Ausgabe:
Name: Max
Alter: 25
Groesse: 1.82 m
Student: true
Mit var (seit Java 10)
Du kannst auch var verwenden — Java erkennt den Typ automatisch:
var name = "Max"; // Java erkennt: String
var alter = 25; // Java erkennt: int
var groesse = 1.82; // Java erkennt: double
var istStudent = true; // Java erkennt: boolean
Vergleich mit Python
# Python: Kein Typ noetig
name = "Max"
alter = 25
// Java: Typ angeben oder var benutzen
String name = "Max";
var alter = 25;
In Java musst du den Typ festlegen — aber das schuetzt dich vor Fehlern!
String-Verknuepfung
Du kannst Texte und Variablen mit + verknuepfen:
var vorname = "Anna";
var nachname = "Mueller";
var alter = 30;
// String-Verknuepfung mit +
System.out.println("Name: " + vorname + " " + nachname);
System.out.println(vorname + " ist " + alter + " Jahre alt.");
Formatierte Ausgabe mit printf
Fuer komplexere Ausgaben gibt es printf:
var name = "Max";
var alter = 25;
var note = 1.7;
System.out.printf("Name: %s, Alter: %d, Note: %.1f%n", name, alter, note);
Ausgabe:
Name: Max, Alter: 25, Note: 1.7
| Platzhalter | Bedeutung | Beispiel |
|---|---|---|
%s | String (Text) | "Max" |
%d | int (Ganzzahl) | 25 |
%f | double (Dezimalzahl) | 1.700000 |
%.1f | double (1 Nachkommastelle) | 1.7 |
%.2f | double (2 Nachkommastellen) | 1.70 |
%n | Zeilenumbruch |
Benutzereingabe mit Scanner
Um Eingaben vom Benutzer zu lesen, brauchst du die Scanner-Klasse:
import java.util.Scanner;
public class Begruessung {
public static void main(String[] args) {
var scanner = new Scanner(System.in);
System.out.print("Wie heisst du? ");
var name = scanner.nextLine();
System.out.print("Wie alt bist du? ");
var alter = scanner.nextInt();
System.out.println("Hallo " + name + "! Du bist " + alter + " Jahre alt.");
scanner.close();
}
}
Beispiel-Ablauf:
Wie heisst du? Max
Wie alt bist du? 25
Hallo Max! Du bist 25 Jahre alt.
Scanner-Methoden
| Methode | Liest | Beispiel |
|---|---|---|
nextLine() | Ganze Zeile (String) | "Hallo Welt" |
next() | Ein Wort (String) | "Hallo" |
nextInt() | Ganzzahl (int) | 42 |
nextDouble() | Dezimalzahl (double) | 3.14 |
nextBoolean() | Wahrheitswert | true |
Wichtig: Scanner richtig nutzen
import java.util.Scanner;
public class ScannerBeispiel {
public static void main(String[] args) {
var scanner = new Scanner(System.in);
System.out.print("Dein Alter: ");
var alter = scanner.nextInt();
scanner.nextLine(); // Zeilenumbruch verbrauchen!
System.out.print("Dein Name: ");
var name = scanner.nextLine();
System.out.printf("%s ist %d Jahre alt.%n", name, alter);
scanner.close();
}
}
Tipp: Nach nextInt() oder nextDouble() bleibt ein Zeilenumbruch im Puffer. Rufe danach scanner.nextLine() auf, um ihn zu verbrauchen.
Einfache Berechnungen
Java kann natuerlich auch rechnen:
public class Rechner {
public static void main(String[] args) {
var a = 10;
var b = 3;
System.out.println("Addition: " + (a + b)); // 13
System.out.println("Subtraktion: " + (a - b)); // 7
System.out.println("Multiplikation: " + (a * b)); // 30
System.out.println("Division: " + (a / b)); // 3 (Ganzzahl!)
System.out.println("Modulo: " + (a % b)); // 1
System.out.println("Division (genau): " + ((double) a / b)); // 3.333...
}
}
Achtung: 10 / 3 ergibt 3, nicht 3.333! Bei Ganzzahl-Division wird abgerundet. Fuer genaue Division brauchst du (double) — einen sogenannten Cast.
Ein komplettes Programm: BMI-Rechner
Lass uns alles zusammensetzen:
import java.util.Scanner;
public class BMIRechner {
public static void main(String[] args) {
var scanner = new Scanner(System.in);
System.out.println("=== BMI-Rechner ===");
System.out.println();
System.out.print("Dein Gewicht in kg: ");
var gewicht = scanner.nextDouble();
System.out.print("Deine Groesse in Metern: ");
var groesse = scanner.nextDouble();
// BMI berechnen: Gewicht / (Groesse * Groesse)
var bmi = gewicht / (groesse * groesse);
System.out.println();
System.out.printf("Dein BMI: %.1f%n", bmi);
// Einfache Bewertung
if (bmi < 18.5) {
System.out.println("Kategorie: Untergewicht");
} else if (bmi < 25) {
System.out.println("Kategorie: Normalgewicht");
} else if (bmi < 30) {
System.out.println("Kategorie: Uebergewicht");
} else {
System.out.println("Kategorie: Adipositas");
}
scanner.close();
}
}
Beispiel-Ablauf:
=== BMI-Rechner ===
Dein Gewicht in kg: 75
Deine Groesse in Metern: 1.80
Dein BMI: 23.1
Kategorie: Normalgewicht
Kommentare
Kommentare helfen dir und anderen, den Code zu verstehen:
// Einzeiliger Kommentar
/* Mehrzeiliger
Kommentar */
/**
* Javadoc-Kommentar
* Wird fuer automatische Dokumentation genutzt
* @param args Kommandozeilenargumente
*/
public static void main(String[] args) {
// Hier kommt dein Code
}
Haeufige Anfaenger-Fehler
1. Semikolon vergessen
// FALSCH:
System.out.println("Hallo") // Fehler!
// RICHTIG:
System.out.println("Hallo"); // Semikolon!
2. Gross-/Kleinschreibung
// FALSCH:
system.out.println("Hallo"); // 's' klein!
String Name = "Max"; // Funktioniert, aber Konvention: name
// RICHTIG:
System.out.println("Hallo"); // 'S' gross!
String name = "Max"; // camelCase!
3. Dateiname passt nicht zur Klasse
// Die Datei MUSS "HalloWelt.java" heissen!
public class HalloWelt {
public static void main(String[] args) {
System.out.println("Hallo!");
}
}
4. Klammern nicht geschlossen
// FALSCH:
public class Test {
public static void main(String[] args) {
System.out.println("Hallo");
}
// Fehlende schliessende Klammer fuer die Klasse!
// RICHTIG:
public class Test {
public static void main(String[] args) {
System.out.println("Hallo");
}
}
Uebungen
Uebung 1: Steckbrief
Schreibe ein Programm, das deinen Namen, dein Alter, deine Lieblingsfarbe und dein Hobby auf der Konsole ausgibt. Verwende Variablen.
Uebung 2: Begruessung mit Eingabe
Schreibe ein Programm, das den Benutzer nach seinem Namen und Alter fragt und dann eine personalisierte Begruessung ausgibt.
Uebung 3: Temperatur-Rechner
Schreibe ein Programm, das eine Temperatur in Celsius einliest und in Fahrenheit umrechnet. Formel: F = C * 9/5 + 32
Uebung 4: Einkaufsrechner
Schreibe ein Programm, das den Preis eines Produkts und die Menge einliest und den Gesamtpreis (inklusive 19% MwSt.) berechnet und ausgibt.
Was kommt als Naechstes?
In der naechsten Lektion schauen wir uns die Grundstruktur eines Java-Programms genauer an. Du wirst verstehen, was public class, static, void und String[] args wirklich bedeuten.
Zusammenfassung
System.out.println()gibt Text aus (mit Zeilenumbruch)System.out.printf()ermoeglicht formatierte Ausgabe mit Platzhaltern- Variablen speichern Daten mit einem festen Typ (
String,int,double,boolean) - Mit
varkann Java den Typ automatisch erkennen (Typinferenz) - Die Scanner-Klasse liest Benutzereingaben (
nextLine(),nextInt(),nextDouble()) - Kommentare (
//,/* */,/** */) machen den Code verstaendlicher - Der Dateiname muss zum Klassennamen passen
Pro-Tipp: Nutze in IntelliJ die Abkuerzung sout + Tab, um schnell System.out.println() zu schreiben. Das spart enorm viel Tipparbeit! Und mit Ctrl + Shift + F10 kannst du die aktuelle Datei direkt ausfuehren, ohne vorher ein Run-Configuration anzulegen.