Video

Du möchtest mehr über die logischen Vergleichsoperatoren in C erfahren? Wir erklären dir, welche speziellen Operatoren es gibt.

Inhaltsübersicht

Der ternäre Operator

C stellt dir einen speziellen Operator zur Verfügung. Dieser sieht in etwa so aus:

(a<b)?a:b

Damit ist diese Fallunterscheidung so klein, dass wir sie einfach in eine andere Funktion, wie zum Beispiel die printf-Funktion, packen können:

printf(``\%i,\ (a<b)?a:b)

Aber was genau macht dieser Operator denn nun? Er erfüllt im Prinzip denselben Zweck wie eine if-else-Anweisung. Dabei steht in der vorderen Klammer die Bedingung, gefolgt von einem Fragezeichen, das das Bedingungsende kennzeichnet. Danach folgt direkt die Anweisung für den Wahrheitsfall.

logischer Operator C
direkt ins Video springen
ternärer Operator

Diesen trennen wir durch einen Doppelpunkt von unserem alternativen Ausdruck, der ausgeführt wird, sollte unsere Bedingung falsch sein. In unserem Fall überprüft der Operator also, ob a kleiner b ist und gibt im Wahrheitsfall a, ansonsten b aus.

Wie du siehst, hat dieser Operator drei Teile. Deswegen nennt man ihn auch den ternären Operator. Als Bedingungen können wir hier alle Vergleichsoperatoren verwenden. Jedoch dürfen wir bei bedingungsabhängigen Anweisungen nur einfache Rechenoperationen verwenden und nur eine Anweisung pro Fall angeben. Da die Ausdrücke, aus denen er besteht, ziemlich lang werden können, ist dieser Operator allerdings nicht immer die übersichtlichste Möglichkeit eine Fallunterscheidung darzustellen. Du kannst ihn deshalb auch in seine Bestandteile aufteilen, um ihn besser lesen zu können.

Weitere Operatoren

So, nun können wir uns in sehr verkürzter Weise ausdrücken, aber etwas fehlt noch. Solltest du vorher schon in einer anderen Programmiersprache geübt gewesen sein, kennst du bestimmt mehr Vergleichsoperatoren als nur „und“ und „oder“. Für dich haben wir hier einen kleinen Überblick über die wichtigsten: Viele Umsteiger sind es gewohnt, mit dem NAND-Operator zu arbeiten. Dieser wird auch als „nicht-und“ bezeichnet. Das bedeutet, er ist immer wahr, außer beide Aussagen sind wahr. Dabei ist die Klammer wichtig, denn sonst stimmen deine Ergebnisse nachher nicht.

Noch ein praktisches Werkzeug ist der NOR-Operator. Er bildet die weder-noch-Unterscheidung ab. Er ist immer dann wahr, wenn beide Argumente falsch sind. Als drittes gibt es noch den XOR-Operator, der auch als „exklusives oder“ oder Antivalenz bezeichnet wird. Er ist eigentlich nichts Anderes als ein „entweder oder“. Deshalb ist er auch nur wahr, wenn ein Faktor falsch und einer wahr ist.

Vergleichsoperatoren C
direkt ins Video springen
wichtigste Vergleichsoperatoren

Nummer vier auf der Liste ist der XNOR-Operator. Er heißt auch exklusives „nicht-oder“ oder Äquivalenz. Das bedeutet eigentlich nichts Anderes als dass er abbildet, dass aus a b folgt. Aus diesem Grund ist er immer wahr, wenn beide Variablen denselben Zustand aufweisen. Im Klartext heißt das: Er ist wahr, wenn a und b beide wahr sind oder wenn a und b beide falsch sind. Des Weiteren gibt es noch die Implikation. Sie ist immer wahr, außer a ist wahr und b falsch. Das liegt daran, dass man in der theoretischen Informatik auch aus Falschem Richtiges folgern kann, aus Richtigem aber nichts Falsches.

Wie du siehst, kannst du kompliziertere Operatoren auch in C benutzen, nur musst du etwas kreativ werden und sie dir selbst basteln.

Studyflix vernetzt: Hier ein Video aus einem anderen Bereich

Operatoren Grundwissen — häufigste Fragen

(ausklappen)
  • Was sind Operatoren?
    Operatoren sind in C Zeichen oder Schlüsselwörter, die aus Werten (Operanden) einen neuen Ausdruck bilden. Operatoren können zum Beispiel rechnen, vergleichen oder logisch verknüpfen und liefern dabei ein Ergebnis zurück. Ein typischer Operator steht zwischen zwei Werten, etwa bei a b.
  • Was ist &&?
    && ist in C der logische UND-Operator. Ein Ausdruck mit && ist nur dann wahr, wenn beide Teilbedingungen wahr sind. Sobald links von && bereits falsch herauskommt, wird die rechte Bedingung nicht mehr ausgewertet.
  • Was ist ein ternärer Ausdruck?
    Ein ternärer Ausdruck ist in C der bedingte Operator ?:, der je nach Bedingung einen von zwei Ausdrücken auswählt. Die Form ist Bedingung ? Ausdruck_wahr : Ausdruck_falsch. Zum Beispiel liefert (a b) ? a : b den kleineren der beiden Werte.
  • Kommt && oder || zuerst?
    In C wird && vor || ausgewertet. Dadurch bedeutet a || b && c dasselbe wie a || (b && c) und nicht (a || b) && c. Wenn eine andere Logik gemeint ist, müssen Klammern die gewünschte Gruppierung erzwingen.

Nach Beantwortung speichern wir deine Antwort, um Studyflix zu verbessern. Mehr dazu erfährst du in unserer Datenschutzerklärung.

Programmieren verstehen

Logische Operatoren gehören zu den Grundlagen beim Programmieren und steuern, wie Bedingungen im Code ausgewertet werden. Du baust Ausdrücke aus true und false, setzt Klammern richtig und entscheidest, welche Teile zuerst gelten. So erkennst du schneller, warum ein Programm in Verzweigungen unterschiedlich läuft und wo ein Ausdruck durch Prioritäten kippt. Weitere Videos dazu findest du in unserem Informatikbereich.

Lernen lohnt sich! Entdecke hier deine Chancen.