Dein erstes Programm
Kurz gesagt: Ein Programm ist eine Folge von Befehlen, die von oben nach unten ausgeführt werden: In Java beginnt es bei main, System.out.println gibt Text aus, und // beginnt einen Kommentar.
Problem
Der Computer macht genau, was dasteht
Der Computer errät nicht, was du willst. Er führt Befehle aus, einen nach dem anderen, genau so, wie sie geschrieben sind. Eine Folge solcher Befehle ist ein Programm.
Hier ist ein ganzes Programm. Es gibt zwei Zeilen auf dem Bildschirm aus:
public class Main { public static void main(String[] args) { System.out.println("Willkommen!"); System.out.println("Das ist dein erstes Programm."); }}Willkommen!Das ist dein erstes Programm.Das sieht nach viel Code für zwei Zeilen Text aus. Das meiste davon ist eine Hülle, die du in jedes Programm schreibst. Deine Befehle sind nur die zwei Zeilen in der Mitte.
Die Idee
Was im Programm steht
public static void main(String[] args)ist die Stelle, an der das Programm beginnt. Wir nennen sie main. Der Computer führt die Zeilen darin von oben nach unten aus.System.out.println(...)gibt den Text in den Klammern aus und springt in eine neue Zeile.- Der Text steht in doppelten Anführungszeichen:
"Willkommen!". Die Anführungszeichen werden nicht ausgegeben. - Jeder Befehl endet mit
;. - Die geschweiften Klammern
{und}fassen die Zeilen zusammen, die zusammengehören.
public class Main ist die Hülle jedes Programms. Was sie bedeutet, lernst du im Modul „Klassen und Objekte“. Vorerst kopierst du sie und schreibst deinen Code in main. Später zeigen wir in den Lektionen nur die Zeilen aus main.
Genauer, für Neugierige
- Groß- und Kleinbuchstaben spielen eine Rolle.
system.out.printlnist nicht dasselbe wieSystem.out.println, und das Programm lässt sich nicht kompilieren.
- Die Datei heißt wie die Klasse:
public class Mainsteht in einer DateiMain.java. - Ab Java 25 lässt sich ein kleines Programm auch kürzer schreiben, ohne die Klasse. Hier schreiben wir die volle Form, weil sie mit jeder Version funktioniert und weil du sie so in fremdem Code sehen wirst.
Die Idee
Ausgabe mit und ohne Zeilenumbruch
Manchmal willst du mehrere Textstücke in einer Zeile. Dafür gibt es einen zweiten Befehl: System.out.print. Er gibt den Text aus und bleibt in derselben Zeile.
System.out.print("Bestellung ");System.out.print("Nr. 1024");System.out.println(" ist bestätigt.");System.out.println("Lieferung: morgen");Bestellung Nr. 1024 ist bestätigt.Lieferung: morgenDie ersten beiden Zeilen im Code nutzen print, deshalb kommen „Bestellung“, „Nr. 1024“ und „ist bestätigt.“ zusammen heraus. Nach println beginnt der nächste Text in einer neuen Zeile.
Achte auf die Leerzeichen. Sie stehen in den Anführungszeichen, denn der Computer setzt kein Leerzeichen von selbst.
Folge dem Cursor: Der Text erscheint immer dort, wo er steht.
System.out.print("Bestellung ");System.out.print("Nr. 1024");System.out.println(" ist bestätigt.");System.out.println("Lieferung: morgen");Schritt für Schritt, in Worten
- print gibt „Bestellung “ aus, und der Cursor bleibt in derselben Zeile.
- print gibt „Nr. 1024“ aus, und der Cursor bleibt in derselben Zeile.
- println gibt „ ist bestätigt.“ aus, und der Cursor springt in eine neue Zeile.
- println gibt „Lieferung: morgen“ aus, und der Cursor springt in eine neue Zeile.
- Die Leerzeichen stehen in den Anführungszeichen. Der Computer setzt kein Leerzeichen von selbst.
Probier es aus
In wie vielen Zeilen?
Was gibt das Programm aus?
System.out.print("Zug ");System.out.println("8:15");System.out.print("Gleis ");System.out.print("3");System.out.println();Nach „8:15“ steht println, deshalb steht „Gleis“ in einer neuen Zeile. Die letzte Zeile, System.out.println();, gibt keinen Text aus. Sie springt nur in eine neue Zeile.
Die Idee
Kommentare: Notizen für Menschen
Manchmal willst du eine Notiz im Code hinterlassen: warum etwas so ist oder was als Nächstes kommt. Du schreibst sie als Kommentar. Der Computer überspringt Kommentare.
//beginnt einen Kommentar bis zum Ende der Zeile./*und*/umschließen einen Kommentar über mehrere Zeilen.
/* Der Kassenbon des Cafés. Die Preise sind in Euro. */System.out.println("Kaffee 2,50 €");// System.out.println("Croissant 1,80 €");System.out.println("Summe 2,50 €"); // keine Croissants mehrKaffee 2,50 €Summe 2,50 €Die Zeile mit dem Croissant ist Code, aber sie steht hinter //, deshalb wird sie nicht ausgeführt. So schaltest du eine Zeile vorübergehend ab, ohne sie zu löschen.
Ein guter Kommentar sagt, warum, nicht was. Was der Code macht, zeigt er selbst.
Probier es aus
Was kommt heraus?
Was gibt das Programm aus?
System.out.println("9:00 Mathe");// System.out.println("10:00 Physik");System.out.println("11:00 Geschichte"); // danach ist MittagspauseDie ganze zweite Zeile ist ein Kommentar, deshalb wird „Physik“ nicht ausgegeben. In der dritten Zeile beginnt der Kommentar nach `;`: Der Befehl wird ausgeführt, und die Notiz nach // wird übersprungen.
Problem
Das Programm startet nicht
Du hast das Programm geschrieben, du startest es, und es beginnt nicht einmal. Statt einer Ausgabe bekommst du eine Meldung:
public class Main { public static void main(String[] args) { System.out.println("Willkommen im Kurs!") System.out.println("Jetzt geht es los."); }}Main.java:3: error: ';' expected System.out.println("Willkommen im Kurs!") ^1 errorBevor es läuft, geht das Programm durch den Compiler. Er übersetzt den Code für den Computer und prüft, ob er nach den Regeln geschrieben ist. Wenn nicht, hält er an und startet nichts. Das nennt man einen Fehler beim Kompilieren (compile error).
Die Idee
So liest du die Meldung
Die Meldung sagt dir drei Dinge: die Datei, die Zeile und was falsch ist.
Main.java:3 bedeutet die Datei Main.java, Zeile 3. ';' expected bedeutet „ich habe ein ; erwartet“. Das Zeichen ^ unter dem Code zeigt auf die Stelle, an der der Compiler das Problem bemerkt hat.
Die häufigsten Fehler am Anfang:
- am Ende eines Befehls fehlt ein
;; - ein Anführungszeichen oder eine Klammer ist geöffnet, aber nicht geschlossen;
- ein Kleinbuchstabe statt eines Großbuchstabens:
system.out.println.
Behebe zuerst den ersten Fehler in der Liste. Ein fehlendes Anführungszeichen kann den Compiler verwirren und weiter unten mehrere Fehler zeigen, die mit ihm verschwinden.
Genauer, für Neugierige
- Der Compiler sagt dir, wo das Problem bemerkt wurde. Manchmal liegt der Fehler etwas weiter oben: Wenn du vergessen hast, eine
}zu schließen, merkt der Compiler das erst am Ende der Datei. - Es gibt auch Fehler, die niemand abfängt: Das Programm startet, macht aber etwas anderes, als du willst. Die jagen wir in fast jeder Lektion.
Probier es aus
Finde den Fehler
Das Programm soll den Plan der Prüfung ausgeben. Es lässt sich nicht kompilieren. In welcher Zeile ist der Fehler?
Wähle die Zeile mit dem Fehler.
); für einen Teil des Textes und findet das Ende des Befehls nicht. Die Korrektur ist System.out.println("Raum: 204");.Übung
Deine ersten Programme
Löse die Aufgaben in deinem Editor. Jede ist ein eigenes Programm. Vergleiche deine Ausgabe mit dem Beispiel, Zeichen für Zeichen.
1. Hello World. Das traditionelle erste Programm. Gib aus:
Hello, World!2. Visitenkarte. Gib eine Visitenkarte aus drei Zeilen aus: Name, Beruf und E-Mail. Du kannst auch deine eigenen Daten nehmen.
Maria IvanovaWebentwicklerinmaria@example.com3. Rahmen. Gib das heutige Menü der Kantine in einem Rahmen aus Sternchen aus. Achte auf die Leerzeichen, damit die rechte Seite gerade wird.
***************** Heute: Suppe ** 5,40 € *****************Weitere Aufgaben
- Ein Satz in drei Teilen. Gib mit drei Befehlen
printund einemprintlnin einer Zeile „Der Shop hat von 9:00 bis 19:00 geöffnet.“ aus. - Ein Stundenplan mit Kommentar. Gib einen Stundenplan mit vier Stunden aus. Schalte dann die dritte Zeile mit
//ab, ohne sie zu löschen, und füge einen Kommentar hinzu, warum.
- Ein Fehler mit Absicht. Entferne das
;aus einer Zeile von Aufgabe 1, dann entferne auch ein Anführungszeichen. Lies jedes Mal, was der Compiler sagt.
Test
Teste dich
Verwandte Lektionen
Abschnitt „Verwandte Lektionen“- Geht weiter in: Variablen und Typen · Eingabe und Ausgabe · Operatoren und Arithmetik · Bedingungen
- Aufgaben zum Thema: Sprachgrundlagen