1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Trophäen
  4. Forum
    1. Unerledigte Themen
  5. Artikel
  6. Lexicon
  • Login
  • Register
  • Search
Lexicon
  • Everywhere
  • Articles
  • Pages
  • Forum
  • Lexicon
  • More Options
  1. Deutsches Raspberry Pi Forum
  2. Lexicon

Joda-Schreibweise

  • peuler
  • January 25, 2024 at 9:58 AM
  • January 25, 2024 at 1:02 PM
  • 935 times viewed
  • 2 comments
  • Bezeichnung für das Umkehren der üblichen Wortreihenfolge insbesondere bei if-Abfragen.

    Gerade bei Einsteigern in Sachen C bzw. C++-Programmierung (und vermutlich gilt das auch für andere Sprachen) wird der Abfrage-Operator == mit dem Zuweisungs-Operator = verwechselt. Sofern man dies in einer if-Abfrage tut, so stellt diese Verwechslung rein syntaktisch keinen Fehler dar. Der Grund ist darin zu sehen, dass mit = zunächst eine Zuweisung erfolgt und dann geprüft wird, ob die Zuweisung erfolgt ist. Und dazu ist das Ergebnis in den allermeisten Fällen wahr (also true). Der Compiler kann zwar per Parameter angewiesen werden, auf solche Fallen zu achten, er wird aber nur eine Warnung ausgeben können und nicht mit einem Fehler abbrechen.

    Man kann diesen Anfängerfehler zumindest beim Vergleich mit Konstanten vermeiden, in dem man die sogenannte Joda-Schreibweise anwendet. Dieser Begriff ist von Meister Joda aus der Kino-Serie Star Wars abgeleitet. Meister Joda vertauscht beim Sprechen die Reihenfolge der Wörter. Sein berühmtester Satz war: "Viel zu lernen Du noch hast".

    Konkret bedeutet dies, dass man nicht mehr schreibt (so wie es leider in den allermeisten Lehrbüchern zu finden ist):

    if (continue_flag == true) { ... }

    sondern die Reihenfolge in der runden Klammer tauscht:

    if (true == continue_flag) { ... }

    Passiert nun der eingangs erwähnte Tippfehler wie folgt:

    if (true = continue_flag) { ... }

    so wird der Compiler mit einem Fehler abbrechen, da man einer Konstante (in diesem Falle true) keinen Wert zuweisen darf bzw. kann.

    Damit kann man sich vom Compiler helfen lassen, Programmierfehler zu vermeiden.

    • C
    • C++
    • Programmierung
  • Previous entry if-Schleife
  • Next entry JSON

Comments 2

__blackjack__
January 25, 2024 at 10:34 AM

Wobei die meisten Compiler mittlerweile eine Warnung ausgeben dürften wenn man if (a = b) schreibt, und vorschlagen das als if ((a = b) != 0) oder vergleichbar zu schreiben, damit das deutlicher wird was man hier gemeint hat. Oder eben das auffällt, dass man das gar nicht so gemeint hat.

peuler
January 25, 2024 at 5:40 PM

Siehe dazu den Satz: "Der Compiler kann zwar per Parameter angewiesen werden, auf solche Fallen zu achten, er wird aber nur eine Warnung ausgeben können und nicht mit einem Fehler abbrechen."

Registrierung

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself

Categories

  1. Hardware 75
  2. Software 105
    1. Smarthome 7
    2. Künstliche Intelligenz 4
  3. Programmierung 33
    1. Python 9
    2. C · C++ 7
    3. andere Programmiersprachen 4
  4. Betriebssysteme 37
  5. Netzwerk 32
  6. Forenabkürzungen 37

Contributors in this entry

  1. peuler 3 changes
  2. kle 1 change
  1. Datenschutzerklärung
  2. Impressum

Forenregeln

Lexicon, developed by www.viecode.com
Powered by WoltLab Suite™