Informatik für Ingenieure (InfIng)

Werbung
Informatik für Ingenieure (InfIng)
C - Kontrollstrukturen
Doz. Dipl.-Ing. H. Hiller
WS 2012/13
Kontrollstrukturen
 Erinnern Sie sich ?
 Frühstücks-Ei kochen, 6 Minuten
 Was tun, wenn…
… kein Topf vorhanden ist?
… Herdplatte schon besetzt ist?
… die Eier noch im Karton sind?
 Was tun, wenn's nicht geradeaus läuft?
Start
Öffne Schrank.
Nimm Topf.
 Programme sind wie das Leben




Nichts läuft einfach nur geradeaus!
Vieles macht man doppelt!
Manches macht man auch dreifach!
Anderes macht man erst gar nicht!
Schließe Schrank.
:
Stop
FH D
Fachhochschule Düsseldorf
Seite 2
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Kontrollstrukturen
 Kontrollstrukturen erlauben es…
 …vom sequenziellen Ablauf eines Programms abzuweichen
Start
anweisung_1
Wiederhole anweisung_2
solange, bis ein bestimmter Wert
in anweisung_2 erreicht wird.
anweisung_2
anweisung_3
Führe anweisung_4 nur dann aus,
wenn die vorhergehende
anweisung_3 einen gültigen Wert
geliefert hat.
Überspringe alle
Anweisungen, wenn nicht
alle
Eingangsbedingungen
erfüllt sind.
anweisung_4
Stop
FH D
Fachhochschule Düsseldorf
Seite 3
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Bedingungen
 Bedingungen
 Verzweigungen und Schleifen basieren auf Bedingungen
 Bedingungen können wahr oder falsch sein
 Ausführung erfolgt nur, wenn Bedingung erfüllt ist (also wahr ist)
 Wahr und Falsch
 Viele Programmiersprachen kennen den Datentyp BOOLEAN
 BOOLEAN hat 2 Werte: Wahr und Falsch bzw. TRUE und FALSE
 C kennt diesen Datentyp nicht
 Wahrheitsprüfung in C liefert immer einen Integerwert
 Integerwert ist von Null verschieden, wenn der Vergleich wahr ist
 Integerwert ist gleich Null, wenn der Vergleich falsch ist
Wahr: ungleich 0
FH D
Fachhochschule Düsseldorf
Falsch: gleich 0
Seite 4
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Themen dieser Vorlesung
Wir wollen folgenden Fragen nachgehen:
1. "Wie kann man bedingt Anweisungen ausführen?"
 Verzweigungen
2. "Wie kann man Anweisungen wiederholen?"
 Schleifen
3. "Wie kann man Anweisungen ab- bzw. unterbrechen?"
 Sprünge
FH D
Fachhochschule Düsseldorf
Seite 5
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Übersicht
 Verzweigungen
Schleifen
Sprunganweisungen
FH D
Fachhochschule Düsseldorf
Seite 6
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Bedingte Verzweigung (if..else)
 Bedingte Verzweigung
 Wahrheitswert entscheidet über die Ausführung von Anweisungen
 Syntax der if-Anweisung
if (ausdruck)
anweisung_1;
else
anweisung_2;
ausdruck
falsch
wahr
anweisung_1
anweisung_2
 ausdruck ist wahr: Ausführung von anweisung_1
 ausdruck ist falsch: Ausführung von anweisung_2
 Einfach Alternative
 else ist optional und kann weggelassen werden
ausdruck
if (ausdruck)
anweisung;
wahr
 ausdruck ist wahr: Ausführung von anweisung_1
 ausdruck ist falsch: anweisung_1 wird übersprungen
FH D
Fachhochschule Düsseldorf
falsch
Seite 7
Informatik für Ingenieure WS 2012/13
anweisung_1
FB 5
Fachbereich Medien
Bedingte Verzweigung (if..else)
 Einrückungen
 Ohne Bedeutung für den Compiler
 "Nur" ein Appell an die Lesbarkeit :-))
 Runde Klammern
 Pflicht für das Argument der if-Anweisung
 Geschweifte Klammern
if (ausdruck)
{
anweisung_1;
anweisung_2;
}
else
{
anweisung_3;
}
 Optional bei lediglich einer Anweisung
 Pflicht bei zwei oder mehr Anweisungen
 Klammern bestimmen den Programmablauf
 Gleiche if - Anweisung, verschiedene Klammerung
 Welche Anweisungen werden ausgeführt?
–
–
#1: Keine Anweisung wird ausgeführt
#2: Ausgeführt wird anweisung_2
 Was liegt hier vor: Absicht oder Fehler?
–
Einrückung der anweisung_2 spricht für Fehler…
FH D
Fachhochschule Düsseldorf
Seite 8
Informatik für Ingenieure WS 2012/13
if (1 > 3)
{
anweisung_1;
anweisung_2;
}
if (1 > 3)
anweisung_1;
anweisung_2;
#1
#2
FB 5
Fachbereich Medien
Bedingte Verzweigung (if..else)
 Beispiel
 Programm soll prüfen, ob ein gegebenes Zeichen ein kleiner Buchstabe ist
 Ist das Zeichen ein Kleinbuchstabe, so ist der zugehörige ASCII-Wert auszugeben
#include <stdio.h>
#include <ctype.h>
int main()
{
char c = 'm';
if ( (c >= 'a') && (c <= 'z')
{
printf ("Das Zeichen %c ist
printf ("Der ASCII-Wert ist
}
else
{
printf ("Was weiss ich, was
}
return 0;
)
ein kleiner Buchstabe.\n", c);
%ddez.\n", c);
das für ein Zeichen ist...");
}
FH D
Fachhochschule Düsseldorf
Seite 9
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Bedingte Verzweigung (if..else)
 Schachtelung
 else gehört immer zum unmittelbar vorhergehenden if
 Fehler bei Klammer oder Semikolon verändern den Programmablauf
 Beispiel
 Verändern einer Klammer bei geschachtelter if-Anweisung
if (x >
if (y
a =
else
a =
0)
> 0)
1;
2;
Ohne Klammern
gehört das else
zum zweiten if.
FH D
Fachhochschule Düsseldorf
if (x >
{
if (y
a =
else
a =
}
0)
> 0)
1;
2;
Mit Klammern
funktional kein
Unterschied zu A,
aber übersichtlicher.
Seite 10
Informatik für Ingenieure WS 2012/13
if (x >
{
if (y
a =
}
else
a =
0)
> 0)
1;
2;
Mit zweiter Klammer
etwas früher gesetzt,
gehört das else
zum ersten if
FB 5
Fachbereich Medien
Bedingte Verzweigung (if..else)
 Mehrfachverzweigung
 Verzweigung über mehrere Alternativen mittels else..if
 Syntax der Mehrfachverzweigung
if (ausdruck_1)
anweisung_1;
else if (ausdruck_2)
anweisung_2;
else if (ausdruck_n)
anweisung_n;
else
anweisung_m;
?
?
a_1
?
a_2
a_n
a_m
 Auswertung der Ausdrücke in vorgegebener Reihenfolge
 Ergibt eine der Auswertungen wahr, wird die zugehörige Anweisung ausgeführt
 Ist kein Ausdruck wahr, wird die Anweisung im (letzten) else-Zweig ausgeführt
FH D
Fachhochschule Düsseldorf
Seite 11
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Bedingte Verzweigung (if..else)
 Bedingungsoperator (?:)
 Alternative zur Verwendung der Schlüsselwörter if und else
 Syntax
ausdruck ? anweisung_1 : anweisung_2
 Tenärer Operator
 ?: ist ein tenärer Operator (der einzige übrigens in ANSI C)
if (a > b)
{
x = 0;
}
else
{
x = 1;
}
FH D
Fachhochschule Düsseldorf
ist äquivalent mit
(a > b) ? (x = 0) : (x = 1);
oder noch etwas raffinierter ausgedrückt
x = (a > b) ? 0 : 1;
Seite 12
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Fallunterscheidung (switch)
 Fallunterscheidung
 Berücksichtigung mehrerer Alternativen, nicht nur wahr oder falsch
 Prinzipiell auch mit if..else möglich (Nachteil: unübersichtlicher)
 Syntax der switch - Anweisung
switch (ausdruck)
{
case const_1:
case const_n:
default:
anweisung_1;
break;
anweisung_n;
break;
anweisung_x;
}
 Auswertung des Ausdrucks liefert einen Wert vom Typ Integer
 Ergebnis wird verglichen mit den case - Lables (ganzzahlige Konstanten)
 Anschließend Sprung zu case - Lable, das mit Ergebnis übereinstimmt
 Fehlende Übereinstimmung führt zum (optionalen) default-Lable
FH D
Fachhochschule Düsseldorf
Seite 13
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Fallunterscheidung (switch)
 Abschluss eines case-Blocks mittels break
 Anweisungen der nachfolgenden case - Lables werden nicht ausgeführt
 Programm wird nach der schließenden geschweiften Klammer fortgesetzt
switch (ausdruck)
{
case const_1: anweisung_1;
break;
case const_2: anweisung_2a;
anweisung_2b;
Fallthrough
case const_3: anweisung_3;
break;
Einsprung A
Einsprung B
default:
anweisung_x;
}
 Verzicht auf break am Ende eines case-Blocks
 Nachfolgendes case-Lable wird ebenfalls ausgeführt (ggf. auch weitere Lables)
 Prg.-Ausführung bis zum nächsten break bzw. Ende des switch (Fallthrough)
FH D
Fachhochschule Düsseldorf
Seite 14
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Fallunterscheidung (switch)
 Beispiel
 Ausgabe der Anzahl Tage eines Monats
#include <stdio.h>
int main()
{
int monat = 2;
switch (monat)
{
case 1: printf("31 Tage");
break;
case 2: printf("28 Tage");
break;
case 7:
case 8:
printf("31 Tage");
break;
// Monat Januar hat 31 Tage
// Sprung zum Ende von switch
// weitere Lables für 3 bis 6
// Falltrough, da Juli und
// August beide 31 Tage haben
// weitere Lables für 9 bis 12
default: printf("Kein gueltiger Monat");
}
return 0;
}
FH D
Fachhochschule Düsseldorf
Seite 15
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Übersicht
Verzweigungen
 Schleifen
Sprunganweisungen
FH D
Fachhochschule Düsseldorf
Seite 16
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Schleifen
 Schleifen
 Wiederholung einer oder mehrerer Anweisungen
 Realisierung jeglicher Formen von "Zählen"
 Anzahl Schleifendurchläufe
 Vorgegeben oder im Programmverlauf ermittelt
 Abbruchbedingung
 … steuert die Schleifendurchläufe
 … ist ein logischer Ausdruck (liefert wahr oder falsch)
 … wird vor oder nach jedem Durchlauf überprüft
 3 Arten von Schleifen
 while - Schleife
 do..while - Schleife
 for - Schleife
© Jochen Seelhammer - Fotolia.com
FH D
Fachhochschule Düsseldorf
Seite 17
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
while - Schleife
 while - Schleife
 Vorprüfende bzw. abweisende Schleife
 Syntax der while - Schleife
falsch
ausdruck
wahr
while (ausdruck)
anweisung;
anweisung
 Schleifendurchläufe
 Abbruchbedingung wird vor Eintritt geprüft
 Kein Schleifendurchlauf wenn ausdruck falsch
 Anzahl der Schleifendurchläufe 0..n
while (a < b)
{
// Anweisung x
a = a + 1;
}
printf("a=%d",a);
FH D
Fachhochschule Düsseldorf
Seite 18
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
while - Schleife
 Beispiel
 Auszugeben sind alle Integer-Zahlen von 0 bis 4
#include <stdio.h>
int main()
{
int i = 0;
while (i <= 4)
{
printf ("i = %d\n", i);
i = i + 1;
};
return 0;
}
Was geschieht, wenn i zu Programmbeginn auf 5 gesetzt wird?
FH D
Fachhochschule Düsseldorf
Seite 19
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
do..while - Schleife
 do..while - Schleife
 Nachprüfende bzw. nicht-abweisende Schleife
 Syntax der do..while - Schleife
anweisung
do
anweisung;
while (ausdruck);
wahr
ausdruck
falsch
 Anzahl Schleifendurchläufe
 Abbruchbedingung wird nach Durchlauf geprüft
 Schleife wird mindestens einmal durchlaufen
 Anzahl der Schleifendurchläufe 1..n
do
{
// Anweisung x
a = a + 1;
} while (a > b);
printf("a=%d",a);
FH D
Fachhochschule Düsseldorf
Seite 20
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
do..while - Schleife
 Beispiel
 Auszugeben sind alle Integer-Zahlen von 0 bis 4
#include <stdio.h>
int main()
{
int i = 0;
do
{
printf ("i = %d\n", i);
i = i + 1;
} while (i <= 4);
return 0;
}
Was geschieht, wenn i zu Programmbeginn auf 5 gesetzt wird?
FH D
Fachhochschule Düsseldorf
Seite 21
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
for - Schleife
 for - Schleife
 Vorprüfende bzw. abweisende (Zähl-) Schleife
 Syntax
falsch
ausdruck
for (ausdruck_1; ausdruck_2; ausdruck_3)
anweisung;
 ausdruck_1:
 ausdruck_2:
 ausdruck_2:
wahr
anweisung
Laufindex, Initialisierung
Abbruchkriterium
Laufindex, Inkrementierung / Dekrementierung
 Funktion
 Init des Laufindexes bei Schleifeneintritt (ausdruck_1)
 Auswertung der Abbruchbedingung (ausdruck_2)
 Wenn ausdruck_2 wahr ist, dann …
–
–
… durchlaufe die Schleife und
… schalte dem Laufindex weiter (ausdruck_3)
 Laufindex
–
for (i=0;i<n;i++)
{
// Anweisung x
a = a + i;
};
printf("a=%d",a);
Inkrementierung (z.B. i++) oder Dekrementierung (z.B. i--)
FH D
Fachhochschule Düsseldorf
Seite 22
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
for - Schleife
 Beispiel
 Auszugeben sind alle Integer-Zahlen von 0 bis 4
#include <stdio.h>
int main()
{
int i;
for (i=0; i<=4; i++)
{
printf ("i = %d\n", i);
}
return 0;
}
Keine separate Anweisung für die Laufvariable i (i = i+1 bzw. i++)
FH D
Fachhochschule Düsseldorf
Seite 23
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Hörsaalübung
 Übung 1
 Ausgabe aller Großbuchstaben (A .. Z)
#include <stdio.h>
#include <stdio.h>
int main()
{
int i;
for (i='A'; i<='Z'; i++)
{
printf ("%c ", i);
}
return 0;
}
int main()
{
int i = 'A';
do
{
printf ("%c ", i++);
} while (i<= 'Z');
return 0;
}
Beide Schleifen sind gleichwertig für die Lösung dieser Aufgabe.
Präferenz hat die for – Schleife, da übersichtlicher.
FH D
Fachhochschule Düsseldorf
Seite 24
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Hörsaalübung
 Übung 2
 Gegeben sei eine Variable name als ein Array mit 21 Feldern
 Es ist die Länge eines in name gespeicherten Vornamens zu ermitteln
#include <stdio.h>
int main()
{
char name[21] = "Snoopy";
int i = 0;
while (name[i] != '\0')
{
printf ("name[%i] = %c\n", i, name[i]);
i = i + 1;
}
printf ("%s hat %d Buchstaben", name, i);
return 0;
// Pruefung auf NUL-Byte
// Laufindex erhoehen
}
FH D
Fachhochschule Düsseldorf
Seite 25
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Hörsaalübung
 Übung 3
 Aufforderung zur Eingabe eines kleinen Buchstabens
 Eingabeaufforderung ist bei Falscheingabe (z.B. einer Zahl) zu wiederholen
#include <stdio.h>
int main()
{
char eingabe;
do
{
printf ("Eingabe Kleinbuchstabe: "); // Eingabeaufforderung
eingabe = getchar();
// Einlesen von der Tastatur
fflush(stdin);
// Tastaturbuffer loeschen
} while ( (eingabe < 'a') || (eingabe > 'z') );
printf ("\nEs wurde der Buchstabe %c eingegeben", eingabe);
return 0;
}
FH D
Fachhochschule Düsseldorf
Seite 26
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Verschachtelte Schleifen
 Verschachtelte Schleifen
 Keine Einschränkungen für Anweisungen im Schleifenkörper
 Somit können auch Schleifen in einer Schleife vorkommen
 Schleifen werden durch übergeordnete Schleifen kontrolliert
for (...)
for (...)
for (...)
 Verschachtelungstiefe
 Ausgedrückt durch die Anzahl an Ebenen abhängiger Schleifen
 Prinzipiell keine Begrenzung
 Mehr als drei Ebenen führen zu schwer verständlichem Code
 Uhrenvergleich ;-)
 Äußere Schleife entspricht dem Stundenzeiger
 Innere Schleife entspricht dem Minutenzeiger
Während der Stundenzeiger um eine Einheit vorrückt,
absolviert der Minutenzeiger einen kompletten Umlauf.
© Heino Pattschull - Fotolia.com
FH D
Fachhochschule Düsseldorf
Seite 27
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Verschachtelte Schleifen

Beispiel
 Ausgabe der Ziffern 0 bis 49 in 5 Zeilen
#include <stdio.h>
int main()
{
int i, j;
// Laufindizes der beiden Schleifen
for (i=0; i <5; i++)
{
for (j=0; j< 10; j++)
{
printf("%d%d ", i, j);
}
printf ("\n");
}
return 0;
// aeussere Schleife, vgl. std-Zeiger
// innere Schleife, vgl. min-Zeiger
}
FH D
Fachhochschule Düsseldorf
Seite 28
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Endlosschleife
 Endlosschleife
 Ausführung einer Schleife ohne Unterbrechung
anweisungen
 Beabsichtigte Endlosschleifen
 Steuerungs-Algorithmen (z.B. Maus, Multitaskingsysteme)
 Applets (z.B. animierte Applets auf Webseiten)
schleife
 Unbeabsichtigte Endlosschleifen
 Mögliche Programmierfehler
–
–
Schleife ohne Abbruchbedingung
Schleife mit Abbruchbedingung, aber unerfüllbar
anweisungen
 Mögliche Auswirkungen
–
–
Inaktivität des Programms dem Benutzer gegenüber ("Einfrieren")
Absturz des Rechners durch hohe Ressourcenauslastung
 Endlosschleifen im täglichen Leben
 Akustischer Kurzschluss, Bild im Bild
 Wiederholte Ausgabe/Aufnahme eines Schallmusters/Bildes
© WoGi - Fotolia.com
FH D
Fachhochschule Düsseldorf
Seite 29
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Endlosschleife
 Beispiele
 3 Endlosschleifen – 1 beabsichtigt, 2 unbeabsichtigt (Fehler)
Endlosschleife #1
Endlosschleife #2
Endlosschleife #3
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
int main()
{
while (1)
{
printf("Endlos");
}
return 0;
}
int main()
{
int i=0;
while (i < 10)
{
printf("i=%d",i);
}
return 0;
}
int main()
{
int i=0;
while (i < 10);
{
printf("i=%d",i);
}
return 0;
}
Finden Sie die Fehler bei Endlosschleife #2 und #3
FH D
Fachhochschule Düsseldorf
Seite 30
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Übersicht
Verzweigungen
Schleifen
 Sprunganweisungen
FH D
Fachhochschule Düsseldorf
Seite 31
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
continue

Sprung aus einer Schleife
 Abbruch eines Schleifendurchlaufs
 Restlicher Code im Schleifenblock wird übersprungen
 Schleife wird mit nächster Iteration fortgeführt

while (ausdruck)
{
...
continue;
...
}
Syntax
continue;

Beispiel
 Summenbildung über gerade ganzzahlige Zahlen von i bis 10
while (i < 11)
{
i = i + 1;
if (i % 2)
continue;
s = s + i;
printf("i = %d
}
FH D
Fachhochschule Düsseldorf
// Module-Operation
// Abbruch der Iteration bei ungeraden Zahlen
s = %d\n", i, s);
Seite 32
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
break

Sprung aus switch - Anweisung oder Schleife
 switch: Verlassen der switch - Anweisung
 Schleife: Verlassen der Schleife, keine weitere Iteration
 Programm wird mit nächster Anweisung fortgeführt

Syntax
while (ausdruck)
{
...
break;
...
}
...
break;

Beispiel
 Summenbildung über ganzzahlige Zahlen
while (i < 11)
{
i = i + 1;
s = s + i;
if (s > 10)
break;
}
printf("i = %d
FH D
Fachhochschule Düsseldorf
s = %d\n", i, s);
Seite 33
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
return
 Rücksprung aus einer Funktion
 Rücksprung in die aufrufende Funktion, bzw. an die aufrufende Stelle
 Optional: Übergabe eines (Rückgabe-) Wertes an die aufrufende Funktion
 Rücksprung an jeder Stelle möglich, vorzugsweise am Ende einer Funktion
 Syntax
return ausdruck;
 ausdruck:
Datentyp ist festgelegt in Funktionsdefinition
 Beispiel
 Rücksprung an die aufrufende Stelle, bzw. Funktion
in main()
{
// Anweisungen
funktion_A;
}
FH D
Fachhochschule Düsseldorf
int funktion_A
{
ergebnis = summe(1,3);
return;
}
Seite 34
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
goto
 Sprung innerhalb einer Funktion
 Sprungziel muss durch eine Marke gekennzeichnet sein
 Programm wird nach der Sprungmarke fortgesetzt
anweisung_1
 Syntax
goto
goto sprungmarke;
:
sprungmarke: anweisung;
anweisung_2
sprungmarke
 sprungmarke: Sprungadresse innerhalb einer Funktion
anweisung_3
 Verwendung von goto
 Unüberlegter Einsatz von goto führt leicht zu unübersichtlichen Programmen
 Einziger sinnvolle Einsatz: Abbruch einer mehrfach geschachtelten Schleife
 Formal ist goto niemals notwendig  Einsatz von Schleifen anstelle von goto
Sprunganweisungen mit goto widersprechen
den Prinzipien der strukturierten Programmierung.
FH D
Fachhochschule Düsseldorf
Seite 35
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
goto
 Beispiel
 Auszugeben sind alle Zahlen von 0 bis 4
#include <stdio.h>
#include <stdio.h>
int main()
{
int i = 0;
int main()
{
int i = 0;
anfang:
printf("i = %i\n", i++);
if (i <= 4)
goto anfang;
return 0;
}
ohne
goto
while (i <= 4)
{
printf("i = %i\n", i++);
}
return 0;
}
Formal ist goto niemals notwendig.
Jeder Algorithmus lässt sich durch Verzweigungen und Schleifen realisieren!
FH D
Fachhochschule Düsseldorf
Seite 36
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Kreisverkehr ?
Endlosschleife !
© Klaus Eppele - Fotolia.com
FH D
Fachhochschule Düsseldorf
Seite 37
Informatik für Ingenieure WS 2012/13
FB 5
Fachbereich Medien
Herunterladen