Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\...

54
Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universit¨ at G¨ ottingen Institut f¨ ur Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13

Transcript of Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\...

Page 1: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Informatik I - Einstiegskurs

Dr. Henrik BrosenneGeorg-August-Universitat Gottingen

Institut fur Informatik

Basiert auf dem Einstiegskurs im Wintersemester 2009/10 vonMarkus Osterhoff

Wintersemester 2012/13

Page 2: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Inhalt

EinstiegskursProgrammiersprachenBedingungenSchleifenCompilermeldungen, typische Fehler

Page 3: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Programmiersprachen

Programme”sagen“ dem Computer, was er tun soll.

Aber wie sagt es der Benutzer?

Beispiel

Star Trek IV, Zuruck in die Gegenwart

Scott:

”Computer! Computer? Hallo Computer!

. . . Tastatur, wie ruckstandig!“

Page 4: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Editor – Compiler – Ausfuhrung

EditorDer Quellcode wird vom Programmierer in einem Editor geschrieben und als Datei(datei.java) abgespeichert.

CompilerDer Quellcode wird vom Compiler (javac) in einen Bytecode (datei.class)ubersetzt, der weitgehend betriebssystem- und plattformunabhangig ist, aber nochkein maschinenverstandliches Programm.

Java Virtual Machine (JVM)Der Bytecode kann mit der JVM java ausgefuhrt werden. Das Programm wirdzur Laufzeit interpretiert und so auf der jeweiligen Maschine (Prozessor +Betriebssystem) lauffahig.

Page 5: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Editor – Compiler – Ausfuhrung

Ausführung

Quellcode

class Hallo { public static void main(String args[]) {

System.out.println( "Hallo Welt!" ); }}

file: Hallo.java

Bytecode

000000001001111010001111101101101100001110101100101010101101110100001101111111000011110100001000100111010001110101011101110110000011011010110111110100000000000001011001001101010100001111011110101100111000110111000011011110000

file: Hallo.class

$ cat > Hallo.java

javac Hallo.java

java Hallo

Grundgerüst

Page 6: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HelloWorld

$ cat -n HelloWorld.java

1 class HelloWorld {

2 public static void main (String [] args) {

3 System.out.println("Hallo Einstiegswelt!");

4 }

5 }

$ javac HelloWorld.java

$ java HelloWorld

Hallo Einstiegswelt!

Page 7: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HelloWorld

1 class HelloWorld {

2 public static void main (String [] args) {

3 System.out.println("Hallo Einstiegswelt!");

4 }

5 }

class HelloWorld { ... }

eine”Klasse“ mit dem Namen HelloWorld wird erstellt

Page 8: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HelloWorld

1 class HelloWorld {

2 public static void main (String [] args) {

3 System.out.println("Hallo Einstiegswelt!");

4 }

5 }

public static void main (...) { ... }

Dies ist das Hauptprogramm, der Einstiegspunkt.

Details zu dem unverstandlichen Blah-Blah – in Info I.

Page 9: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HelloWorld

1 class HelloWorld {

2 public static void main (String [] args) {

3 System.out.println("Hallo Einstiegswelt!");

4 }

5 }

System.out.println("Hallo");

Eine Anweisung: Eine bestimmte Funktion, System.out.println, wirdaufgerufen. Ergebnis: Der Text wird ausgegeben.

Page 10: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HelloWorld

1 class HelloWorld {

2 public static void main (String [] args) {

3 System.out.println("Hallo Einstiegswelt!");

4 }

5 }

"Hallo Einstiegswelt!"

Dies ist ein String-Literal, ein im Quellcode”hart eincodierter“ Text.

Page 11: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HelloWorld

1 class HelloWorld {

2 public static void main (String [] args) {

3 System.out.println("Hallo Einstiegswelt!");

4 }

5 }

"Hallo Einstiegswelt!"

Strings,”Zeichenketten“, stehen in Anfuhrungszeichen.

Page 12: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HelloWorld

1 class HelloWorld {

2 public static void main (String [] args) {

3 System.out.println("Hallo Einstiegswelt!");

4 }

5 }

System.out.println( ... )

Dieser Aufruf einer Java-Bibliothek kann Texte und Zahlen ausgeben.

Page 13: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HalloKommentar

1 class HalloKommentar {

2 /* Hier beginnt das Hauptprogramm */

3 public static void main (String [] args) {

4 System.out.println("Hallo Einstiegswelt!");

5 // Wir haben eine Meldung ausgegeben

6 }

7 /* Hier endet das Hauptprogramm */

8 }

$ javac HalloKommentar.java

$ java HalloKommentar

Hallo Kommentar!

Zwischen /* und */ steht ein Kommentar; dieser ist fur den Menschen undwird vom Compiler ignoriert.

Alles ab // bis zum Zeilenende ist ebenfalls ein Kommentar.

Page 14: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HalloKommentar

Kommentare

dienen dem Programmierer, sich in seinem Wust von Programmzeilenzurechtzufinden,

dienen anderen Programmierern, zu verstehen, was in einem Programmpassiert.

Erfahrungswert. Nach drei Wochen hat man alles uber sein Programm vergessen,egal wie gut man es mal kannte.

Moglichst gute Variablennamen.

Moglichst aussagekraftig kommentieren.

Page 15: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HalloGrafZahl

1 class HalloGrafZahl {

2 public static void main (String [] args) {

3 System.out.println("Hallo Graf Zahl!");

4 System.out.println (1337 + 42);

5 }

6 }

$ javac HalloGrafZahl.java

$ java HalloGrafZahl

Hallo Graf Zahl!

1379

Page 16: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HalloVariable

1 class HalloVariable {

2 public static void main (String [] args) {

3 int sieben = 7;

4 System.out.println( sieben );

5 }

6 }

$ javac HalloVariable.java

$ java HalloVariable

7

int sieben = 7;

Eine Variable vom Typ int (Integer = Ganzzahl) wird angelegt und mit demWert 7 initialisiert.

Page 17: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HalloFormel

1 class HalloFormel {

2 public static void main (String [] args) {

3 double pi = 3.14159;

4 int fuenf = 5;

5 double umfang;

6

7 umfang = 2 * pi * fuenf;

8 System.out.println( "Umfang = " + umfang );

9 }

10 }

$ javac HalloFormel.java

$ java HalloFormel

Umfang = 31.4159

double pi = 3.14159;

Eine Variable vom Typ double (Gleitkommazahl) wird angelegt und mit demWert 3.14159 initialisiert.

double umfang;

Eine Variable vom Typ double (Gleitkommazahl) wird angelegt.

Page 18: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HalloFormel

1 class HalloFormel {

2 public static void main (String [] args) {

3 double pi = 3.14159;

4 int fuenf = 5;

5 double umfang;

6

7 umfang = 2 * pi * fuenf;

8 System.out.println( "Umfang = " + umfang );

9 }

10 }

$ javac HalloFormel.java

$ java HalloFormel

Umfang = 31.4159

umfang = 2 * pi * fuenf;

Die Berechnung wird ausgefuhrt, das Ergebnis wird in der Variablen umfang

gespeichert.

Page 19: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

HalloFormel

1 class HalloFormel {

2 public static void main (String [] args) {

3 double pi = 3.14159;

4 int fuenf = 5;

5 double umfang;

6

7 umfang = 2 * pi * fuenf;

8 System.out.println( "Umfang = " + umfang );

9 }

10 }

$ javac HalloFormel.java

$ java HalloFormel

Umfang = 31.4159

System.out.println("Umfang" + umfang);

Die”Addition“ von einem String mit einer Zahl ist ein String.

Die Zahl wird als Zeichenkette im Zehnersystem dargestellt.

Page 20: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Vorsicht, Fallen!

Java achtet auf Groß- und Kleinschreibung

Linux achtet auf Groß- und Kleinschreibung

$ javac programmdatei.java — Endung!

$ java klassenname — keine Endung!

Page 21: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Konzepte: Variablen, Datentypen

Ein Programm, in dem alle Zahlen fest einprogrammiert sind, ist langweilig.

Der Benutzer muss Eingaben machen konnen / es mussen Dateien eingelesenwerden konnen.

Zwischenergebnisse mussen gespeichert werden.

→ Variablen ≡ benannte Speicherbereiche

Es gibt unterschiedliche Arten von”Zahlen“

Zum Beispiel ganze Zahlen (int) und Gleitkommazahlen (double).

Es gibt auch Zeichenketten (String) und Boolsche Ausdrucke (bool: true,

false).

→ Datentypen

Page 22: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Konstanten

int: Ganze Zahlen, dezimale Schreibweise, keine Anfuhrungszeichen:

1 , 42 , -17

double:”Reelle zahlen“, Punkt statt Komma:

3.14159 , -17.5 , 0.0

String: Zeichenketten zwischen Anfuhrungszeichen:

"Hallo Welt" , "3.14159" , ""

Der Wert steht zur Compile-Zeit fest.

Page 23: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Variablen

Deklaration:

double PI;

Zuweisung:

PI = 3.14159;

Deklaration + Zuweisung (Initialisierung):

double E = 2.718;

Bei einem String:

String grussworte = "Liebe Programmierer";

Page 24: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Variablen

Und was kann man damit machen?

Ausgeben:

String grussworte = "Liebe Programmierer";

System.out.println(grussworte);

Neu zuweisen:

int ganzeZahl = 3;

ganzeZahl = 42;

Rechnen!

Page 25: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Operatoren

Rechnen!

Java kennt naturlich die”vier Grundrechenarten“:

int b, c, summe, differenz, produkt, quotient;

oder alternativ:

double b, c, summe, differenz, produkt, quotient;

summe = b+c;

differenz = b-c;

produkt = b*c;

quotient = b/c;

Page 26: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Operatoren

summe = b+c;

differenz = b-c;

produkt = b*c;

quotient = b/c;

Der Wert, der aktuell in der Variablen b gespeichert ist, wird abgerufen.

Der Wert, der aktuell in der Variablen c gespeichert ist, wird abgerufen.

Die mathematische Operation wird ausgefuhrt.

Das Ergebnis wird in der Variablen (z.B. summe) gespeichert –

der Variablen wird ein neuer Wert zugewiesen.

Page 27: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Der Zuweisungsoperator

int b = 3, c = 7;

int summe = 11;

summe = b+c;

Der Zuweisungsoperator ist kein mathematisches Gleichheitszeichen!

Es wird zugewiesen; der Wert von summe spielt keine Rolle!

Dies ist kein Vergleich!

Page 28: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Inkrement-/Dekrementoperatoren

int i = 1;

i = i+1;

i++;

In Zahlschleifen wird eine Variable bei jedem Durchlauf um 1 erhoht.

Dies ist relativ viel zu schreiben, kommt sehr haufig vor – es gibt eineabkurzende Schreibweise, die (fast) jeder Programmierer versteht:

i++

Der Wert der Variablen i wird ausgelesen; es wird 1 addiert; das Ergebniswird der Variablen i zugewiesen.

Analog: i--

Page 29: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Operatoren mit Strings

String text = "Das Ergebnis lautet "

double radius = 5;

double umfang = 2*3.14159*radius;

System.out.println( text + umfang );

Die”Addition“ von Zeichenketten ist die

”Konkatenation“ (das

Aneinanderhangen)

Die”Addition“ von Zeichenketten mit Zahlen ist das Anhangen der

dezimalen Schreibweise der Zahl an den String.

Page 30: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Inhalt

EinstiegskursProgrammiersprachenBedingungenSchleifenCompilermeldungen, typische Fehler

Page 31: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Bedingungen

Java-Programme werden Anweisung fur Anweisung ausgefuhrt:tue dies; tue das; nun dies; mache jenes; rechne aus; gib aus;

Man braucht Kontrollstrukturen

Alternativen (Abzweigungen, Entscheidungen)

Wiederholungen (Schleifen)

Page 32: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Alternativen

Alternativen

tue dies; tue das; nun dies;

WENN dieseBedingungErfulltIst: tueDieses; SONST: tueJenes;

mache jenes; rechne aus; gib aus;

Page 33: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Alternativen

tue dies;tue das;tue jenes;

if ( x == 1 )

else

und immer das hier;und dann auch noch dieses;

höre auf;

{tue dies hier;und das noch;und jenes;

}

{oder halt dies;und dann das;

und schließlich mich;}

Page 34: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Alternativen

Alternative if -- else

1 class ifelsetest {

2 public static void main () {

3 int a = 3;

4 int b = 7;

5

6 if (a == b)

7 System.out.println("a und b sind gleich");

8 else

9 System.out.println("a und b sind anders");

10 }

11 }

Nur wenn die Bedingung erfullt (== true) ist, wird die nachste Anweisungausgefuhrt.

Ist die Bedingung jedoch nicht erfullt (== false), wird die Anweisungubersprungen. Stattdessen wird die Anweisung hinter else ausgefuhrt.

Page 35: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Alternativen

Der else-Zweig ist optional:

1 class iftest {

2 public static void main () {

3 int m = 3;

4 int n = 7;

5

6 if (m < n)

7 System.out.println("m ist kleiner als n.");

8 }

9 }

Page 36: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Nach if bzw. else wird genau eine Anweisung ausgefuhrt.

Ist das nicht meistens zu wenig?

”Ein Block von Anweisungen ist eine Anweisung.“

Mehrere Anweisungen lassen sich zu einem Block zusammenfassen.

Page 37: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Alternativen

Mehrere Anweisungen lassen sich zu einem Block zusammenfassen:

1 class Block {

2 public static void main (String [] args) {

3 if ( 1 == 2 ) {

4 System.out.println("1 ist gleich 2.");

5 System.out.println("Das ist falsch.");

6 }

7 else {

8 System.out.println("1 ist ungleich 2.");

9 System.out.println("Das ist richtig.");

10 }

11 }

12 }

$ javac block.java ; java Block

1 ist ungleich 2.

Das ist richtig.

Ein Block wird durch geschweifte Klammern definiert.

Auch die Klassendefinition und die Main-Funktion sind ein Block!

Page 38: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Der Vergleichsoperator

Erinnerung: Der Zuweisungsoperator, =

int b = 3, c = 7;

int summe = 11;

summe = b+c;

Die Zuweisung wird ausgefuhrt, es findet kein Vergleich statt.

Neu: Der Vergleichsoperator, ==

if ( summe == b+c ) ...else ...

Page 39: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Inhalt

EinstiegskursProgrammiersprachenBedingungenSchleifenCompilermeldungen, typische Fehler

Page 40: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Konzepte: Schleifen

Eine Alternativen kann die eine oder die andere Anweisung einmal ausfuhren.

Eine Schleife kann eine Anweisung (oder einen Block von Anweisungen)mehrmals ausfuhren.

Beispiel

1 class Nullkommaeins {

2 public static void main (String [] args) {

3 double nke = 0.1;

4 double sum = 0.0;

5 int i;

6

7 for (i=0; i<10; i++)

8 sum = sum + nke;

9

10 System.out.println("Summe: " + sum);

11 }

12 }

Page 41: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Konzepte: Schleifen

for ( i=0 ; i<10 ; i++ )

System.out.println( i );

;

;

vor der Schleife

nach der Schleife

Initialisierung

Schleifen-BedingungErhöhung

des Zählers

Schleifen-Durchlauf

Page 42: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Konzepte: Schleifen

for ( i=0 ; i<10 ; i++ )

anweisung;

for wird typischerweise fur Zahlschleifen verwendet:

i=0 — ein Index (Zahlvariable) wird initialisiert

i<10 — solange eine Bedingung erfullt ist, wird

anweisung; — die Anweisung (oder der Block) wiederholt

i++ — nach jedem Schleifendurchlauf (vor dem nachsten Test derBedingung) wird der Wert von i um 1 erhoht

Page 43: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Schleifen: Beispiele

for ( i=0 ; i<10 ; i++ )

System.out.println( i );

Die Zahlen von 0 bis 9 werden zeilenweise ausgegeben.

Page 44: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Schleifen: Beispiele

for ( i=10 ; i>0 ; i-- )

System.out.println( i );

Die Zahlen von 10 bis 1 werden zeilenweise ausgegeben.

Page 45: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Schleifen: Beispiele

for ( i=10 ; i>0 ; i-- )

System.out.println( 2*i + 1 );

Die Zahlen von 21 bis 3 werden in Zweierschritten zeilenweise ausgegeben.

Page 46: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Schleifen: Beispiele

for ( i=1 ; i<11 ; i++ )

System.out.println( i + " " + 2*i );

Es werden immer zwei Zahlen nebeneinander ausgegeben,

die erste zahlt von 1 bis 10

die zweite zahlt in Zweierschritten von 2 bis 20.

Page 47: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

weitere Schleifen

while (bedingung) ...

Ahnlich zu for, aber nur ein Argument

do ... while (bedingung);

Ahnlich zu while, aber Test nach dem Durchlauf

for (String s: args) ...

Ein Iterator uber ein Feld von Objekten

Page 48: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Inhalt

EinstiegskursProgrammiersprachenBedingungenSchleifenCompilermeldungen, typische Fehler

Page 49: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Compilermeldungen, typische Fehler

KLASSE.java:1: class, interface, or enum expected

CLASS KLASSE {

class wird klein geschrieben

Page 50: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Compilermeldungen, typische Fehler

KLASSE.java:2: ’;’ expected

PUBLIC STATIC VOID main(String[] args) {

public static void wird klein geschrieben

Page 51: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Compilermeldungen, typische Fehler

KLASSE.java:6: not a statement

for (i=0, i<13; i++)

Semikolon, kein Komma

Page 52: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Compilermeldungen, typische Fehler

KLASSE.java:7: not a statement

for (j==i; j>0; j--)

Zuweisungsoperator!

Page 53: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Compilermeldungen, typische Fehler

KLASSE.java:13: ’)’ expected

System.out.println("Ergebnis: " result);

KLASSE.java:13: illegal start of expression

System.out.println("Ergebnis: " result);

Konkatenation mit ’+’

Page 54: Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\ dem Computer, was er tun soll. Aber wie sagt es der Benutzer? Beispiel Star Trek

Compilermeldungen, typische Fehler

1 public static int xxx(int m, int n) {

2 if (m == 0)

3 return 1;

4 if (n == 0)

5 return 2;

6 if (m != 0 && n != 0)

7 return 3;

8 }

fehler2.java:8: missing return statement

javac erkennt nicht die Logik:

das dritte if ist automatisch erfullt