Informatik I - Einstiegskurs - Institute of Computer ... · Programmiersprachen Programme " sagen\...
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/1.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/2.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/3.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/4.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/5.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/6.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/7.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/8.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/9.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/10.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/11.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/12.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/13.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/14.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/15.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/16.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/17.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/18.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/19.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/20.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/21.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/22.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/23.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/24.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/25.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/26.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/27.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/28.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/29.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/30.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/31.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/32.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/33.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/34.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/35.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/36.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/37.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/38.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/39.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/40.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/41.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/42.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/43.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/44.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/45.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/46.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/47.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/48.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/49.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/50.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/51.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/52.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/53.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022041204/5d54da4a88c99358538b7711/html5/thumbnails/54.jpg)
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