5.1
Bedingte Anweisungsblöcke und Verzweigungen
Ein bedingter Anweisungsblock hat in Matlab die Form:
Der Anweisungsblock wird nur dann ausgeführt, wenn die Bedingung wahr ist. Der Anweisungsblock kann beliebig viele Anweisungen, auch Verbundanweisungen enthalten. Verbundanweisungen können also geschachtelt werden.
Bedingungen können als beliebiger skalarer logischer Ausdruck angegeben werden. Falls der Ausdruck keinen skalaren Wert liefert, berechnet Matlab automatisch nach vorgegebenen Regeln einen skalaren Wert. Wir kommen darauf später noch zurück. Falls der Wert des Ausdruckes zwar skalar, aber verschieden von 0 (falsch) oder 1 (wahr) ist, ordnet Matlab ihm einen logischen Wert zu.
Frage: Kann man statt if Wert==0 immer if Wert schreiben?
Zwei alternativ auszuführende Anweisungsblöcke werden in Matlab mit Hilfe von else formuliert:
Wenn die Bedingung erfüllt ist, wird der bedingte Anweisungsblock ausgeführt, anderenfalls der alternative Anweisungsblock.
Man kann auch mehrere Bedingungen abprüfen lassen und jeder Bedingung einen Anweisungsblock zuordnen. Die Reihenfolge, in der die Bedingungen aufgelistet werden ist dabei von Bedeutung, sie bestimmt die Reihenfolge in der sie geprüft werden. Sobald eine wahre Bedingung gefunden wird, wird der zugehöhrige Anweisungsblock durchlaufen und die Verbundanweisung ist damit abgearbeitet. Man formuliert zusätzliche Bedingungen in Matlab mit Hilfe von elseif. elseif-Konstruktionen können mit einer else-Konstruktion abgeschlossen werden, müssen dies aber nicht.
Frage: Wie läßt sich das obige Problem ohne else formulieren? Kann man die Abfragen vertauschen ohne das Ergebnis zu verändern?
|