Tracks
/
Julia
Julia
/
Lehrplan
/
Bedingte Anweisungen
Be

Bedingte Anweisungen in Julia

7 Übungen

Über Bedingte Anweisungen

Vergleichsoperatoren

Vergleichsoperatoren in Julia ähneln denen vieler anderer Sprachen, bieten aber ein paar Extras für Mathe-Fans.

Für Gleichheit gibt es die Operatoren == (gleich) und != bzw. ≠ (ungleich).

txt = "abc"
txt == "abc"  # true
txt != "abc"  # false
txt ≠ "abc"  # false (synonym for !=)

Dazu kommen die verschiedenen Größer-/Kleiner-Operatoren.

1 < 3  # true
3 > 3  # false
3 <= 3  # true
3 ≤ 3  # true (synonym for <=)
4 >= 3  # true
4 ≥ 3  # true (synonym for >=)

Wie so oft bei Julia macht ein passender Editor die Verwendung des mathematischen Symbols einfach. Tippe \ne, \le oder \ge und dann TAB, um ≠, ≤ oder ≥ zu erhalten.

Das vorige Beispiel verwendet nur Zahlen, aber in anderen Teilen des Lehrplans werden wir sehen, dass verschiedene weitere Typen eine Ordnung kennen und auf Größer/Kleiner geprüft werden können.

Vergleichsoperatoren lassen sich verketten, was eine klare und knappe Syntax erlaubt:

n = 3
1 ≤ n ≤ 5  # true (n "between" two limits)

Das vorige Beispiel entspricht 1 ≤ n && n ≤ 5.

Verzweigungen mit if

Das ist die vollständige Form einer if-Anweisung:

if conditional1
    statements...
elseif conditional2
    statements...
else
    statements...
end

Runde Klammern () oder geschweifte Klammern {} sind nicht nötig, und die Einrückung dient „nur“ der besseren Lesbarkeit (aber Lesbarkeit ist sehr wichtig!).

Sowohl elseif als auch else sind optional, und es kann mehrere elseif-Blöcke geben. Das end ist jedoch erforderlich.

Du kannst if-Anweisungen auch verschachteln, aber für eine bessere Lesbarkeit solltest du Klammern, Einrückungen und Kommentare mit Bedacht einsetzen.

Die kürzeste Form einer if-Anweisung sieht ungefähr so aus:

if n < 0
    n = 0
end

Zur Erinnerung: Nur Ausdrücke, die zu true oder false ausgewertet werden, können als Bedingungen verwendet werden. Julia vermeidet bewusst jegliches Konzept von „truthiness“, deshalb sind Nullwerte, leere Strings und leere Arrays nicht gleichbedeutend mit false.

Ternärer Operator

Eine einfache und häufige Situation ist die Auswahl eines von zwei Werten anhand einer Bedingung.

Wie viele Sprachen hat Julia einen ternären Operator, der das kompakter macht.

Die Syntax lautet conditional ? value_if_true : value_if_false.

Das vorige Beispiel lässt sich also so umschreiben:

n = n < 0 ? 0 : n

Der Compiler verlangt keine Klammern, aber sie können die Lesbarkeit verbessern.

Gibt es in Julia eine match-Anweisung?

Eine match/case-Struktur ist derzeit nicht Teil der Basissprache.

Für einfache Fälle empfiehlt sich die Verwendung von if..elseif..else.

Für anspruchsvolleres Pattern Matching, ähnlich wie in Scala, ist das Paket Match.jl beliebt. Wie bei den meisten Paketen von Drittanbietern ist Match jedoch im Test-Runner von Exercism nicht verfügbar.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Bedingte Anweisungen

Das Üben ist gesperrt

Schalte 5 weitere Übungen frei, um Bedingte Anweisungen zu üben