07.10.2013 Aufrufe

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 40<br />

Anm1 Eine 99 Bedingung kann jeder Boolesche (logische) Ausdruck sein; zusätzliche Möglichkeit s.<br />

(4.51).<br />

Anm2 Als 50 Anweisung kann wiederum jede Anweisung genommen werden: beliebige Schachtelung<br />

– vgl. Kapitel 2.5! Zur Auflösung von Mehrdeutigkeiten s. a. (b).<br />

Anm3 Bitte beachten: Anweisung steht im Singular, d. h. es muss (jeweils) genau ein Anweisung<br />

stehen.<br />

• Falls mehrere Anweisungen benötigt werden, werden sie zu einem Block (4.11) umschlossen;<br />

dieser Block wirkt syntaktisch als eine Anweisung.<br />

• Falls keine Anweisung benötigt wird, ist eine <strong>Leer</strong>anweisung zu nehmen, z. B.:<br />

; // Ausdrucksanweisung ohne Ausdruck (3.32a)<br />

{ } // Block mit null Anweisungen (4.11)<br />

(b) Schachtelt man ein- und zweiseitige Auswahl, so wird in der textuellen Form die Zugehörigkeit<br />

des SONST-Zweiges durch Einrückung unterschieden: bei Version A gehört der SONST-<br />

Zweig zum äußeren WENN, bei Version B zum inneren WENN:<br />

// Version A<br />

WENN Bedingung-Außen DANN<br />

WENN Bedingung-Innen DANN<br />

Dann-Anweisung-Innen<br />

SONST<br />

Sonst-Anweisung-Außen<br />

// Version B<br />

WENN Bedingung-Außen DANN<br />

WENN Bedingung-Innen DANN<br />

Dann-Anweisung-Innen<br />

SONST<br />

Sonst-Anweisung-Innen<br />

Da der C ++-Compiler jedoch unabhängig vom Lay-out arbeitet, wird die Mehrdeutigkeit<br />

durch folgende Regel aufgelöst:<br />

Ein else gehört immer zum letzten if, welches selbst noch kein else hatte.<br />

△! Daher wird – durch den C ++-Compiler – Version A genauso interpretiert wie Version<br />

B: der SONST-Zweig gehört zum inneren WENN. Um dem C ++-Compiler die Interpretation<br />

entsprechend dem Lay-out von Version A aufzuzwingen, muss die innere einseitige Auswahl<br />

maskiert werden, so dass sie formal nach außen nicht wie eine Auswahl wirkt:<br />

// Version C – nötig für C ++-Compiler<br />

WENN Bedingung-Außen DANN<br />

ANWEISUNGSKLAMMER<br />

WENN Bedingung-Innen DANN<br />

Dann-Anweisung-Innen<br />

ENDE ANWEISUNGSKLAMMER<br />

SONST<br />

Sonst-Anweisung-Außen<br />

Diese Klammerung von Anweisungen geschieht in C ++ durch die ZusammengesetzteAnweisung<br />

(4.11), d. h. durch Einschließen in ein Paar geschweifter Klammern { }.<br />

(c) △! Als Bedingung ist hier wegen seines Haupteffektes (3.32b) auch ein Zuweisungsausdruck<br />

erlaubt; davon wird für Anfänger dringend abgeraten. Meist wird unabsichtlich eine<br />

Zuweisung statt eines Vergleichs ( ” =“ statt ” ==“) geschrieben.<br />

Bsp int i; cin >> i;<br />

if (i = -1) cout

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!