Inhalt: Programme in Java Kommentare Sequentielle Anweisungen Verzweigungen Schleifentypen Sprunganweisungen Funktionen in Java
Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren" , Springer-Verlag 2007
Sommersemester 2008
Marco Block
Programmieren mit einem einfachen Klassenkonzept Programm als Klasse Jedes Programm sehen wir erstmal als eine Klasse an. MeinErstesProgramm zeigt das Gerüst für ein Programm in Java.
Name des Programms mit Großbuchstaben
public class MeinErstesProgramm{ public static void main(String[] args){ //HIER KOMMEN DIE ANWEISUNGEN DES PROGRAMMS HIN } }
Marco Block
An diese Stelle schreiben wir das Programm.
Sommersemester 2008
Programmieren mit einem einfachen Klassenkonzept Kommentare Verschiedene Möglichkeiten, um Programme zu kommentieren. // Ich bin ein hilfreicher Kommentar in einer Zeile /* Falls ich mal Kommentare über mehrere Zeilen hinweg schreiben möchte, so kann ich das mit diesem Kommentarsymbol tun */ public class Kommentierung{ // ich kann auch hier stehen public static void main(String[] args){ /* An diese Stelle schreiben wir die Programmanweisungen */ } }
Sommersemester 2008
Marco Block
Programmieren mit einem einfachen Klassenkonzept Sequentielle Anweisungen Programm Sequentiell.java mit sequentiellen Anweisungen public class Sequentiell{ public static void main(String[] args){ int a=5; // Anweisung 1 a=a*2; // Anweisung 2 a=a+10; // Anweisung 3 a=a-5; // Anweisung 4 } }
Nach einer Anweisung steht ein „;“.
Sequentielle Anweisungen werden der Reihenfolge nach von oben nach unten verarbeitet.
a
Marco Block
5
Sommersemester 2008
Programmieren mit einem einfachen Klassenkonzept Sequentielle Anweisungen Ausgabe am Ende der Berechnung zur Überprüfung. public class Sequentiell{ public static void main(String[] args){ int a=5; // Anweisung 1 a=a*2; // Anweisung 2 a=a+10; // Anweisung 3 a=a-5; // Anweisung 4 System.out.println("a hat den Wert: "+a); } }
Anweisung zur Ausgabe im Konsolenfenster
Nach Ausführung des Programms erhalten wir folgende Ausgabe: C:\>javac Sequentiell.java C:\>java Sequentiell a hat den Wert: 15
Sommersemester 2008
Marco Block
Programmieren mit einem einfachen Klassenkonzept Verzweigungen Wenn eine Bedingung erfüllt ist, dann führe eine einzelne Anweisung aus: if () ; if (xjavac MeineEingaben.java C:\>java MeineEingaben Hallo 27 Eingabe 1: >Hallo< und Eingabe 2: >27 java MeineEingaben Hallo Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at MeineEingaben.main(MeineEingaben.java:5)
Marco Block
Sommersemester 2008
Daten laden und speichern Externe Programmeingaben III Dieser Fehler lässt sich vermeiden, wenn wir zuerst die Anzahl der übergebenen Elemente überprüfen. public class MeineEingaben{ public static void main(String[] args){ for (int i=0; ijava MeineEingaben Hallo 27 und noch viel mehr! Eingabe 0: >Hallo< Eingabe 1: >27< Eingabe 2: >und< Eingabe 3: >noch< Eingabe 4: >viel< Eingabe 5: >mehr! type namen.dat Harald Liebchen Gustav Peterson Gunnar Heinze Paul Freundlich C:\>java Zeile 0: Zeile 1: Zeile 2: Zeile 3:
LiesDateiEin namen.dat Harald Liebchen Gustav Peterson Gunnar Heinze Paul Freundlich
Unser Programm kann eine Datei zeilenweise auslesen und gibt das eingelesene gleich auf der Konsole aus.
Marco Block
Sommersemester 2008
Daten laden und speichern Daten in eine Datei schreiben I Um Daten in eine Datei zu speichern, schauen wir uns mal folgendes Programm an: import java.io.*; public class SchreibeInDatei{ public static void main(String[] args){ // Dateiname wird übergeben String filenameOutput = args[0]; try{ BufferedWriter myWriter = new BufferedWriter(new FileWriter(filenameOutput, false)); // schreibe zeilenweise in die Datei filenameOutput myWriter.write("Hans Mueller\n"); myWriter.write("Gundel Gaukel\n"); myWriter.write("Fred Feuermacher\n"); // schliesse die Datei myWriter.close(); } catch (IOException eIO) { System.out.println("Folgender Fehler trat auf: "+eIO); } } }
Jetzt testen wir unser Programm und verwenden zur Überprüfung die vorher besprochene Klasse LiesDateiEin.java.
Sommersemester 2008
Marco Block
Daten laden und speichern Daten in eine Datei schreiben II Ausgabe: C:\>java SchreibeInDatei namen2.dat C:\>java Zeile 0: Zeile 1: Zeile 2:
LiesDateiEin namen2.dat Hans Mueller Gundel Gaukel Fred Feuermacher
Wir stellen fest: Es hat funktioniert!
Marco Block
Sommersemester 2008
Daten laden und speichern Daten von der Konsole einlesen Wir sind nun in der Lage, Daten beim Programmstart mitzugeben und Dateien auszulesen, oft ist es aber wünschenswert eine Interaktion zwischen Benutzer und Programm zu haben. Beispielsweise soll der Benutzer eine Entscheidung treffen oder eine Eingabe machen. Das ist mit der Klasse BufferedReader schnell realisiert: import java.io.*; public class Einlesen{ public static void main(String[] args){ System.out.print("Eingabe: "); try{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader bur = new BufferedReader(isr); // Hier lesen wir einen String ein: String str = bur.readLine(); // und geben ihn gleich wieder aus System.out.println(str); } catch(IOException e){} } }
Beispiel: C:\>java Einlesen Eingabe: Ich gebe etwas ein 4,5 a 1/2 Ich gebe etwas ein 4,5 a 1/2