Kommentar (Programmierung): Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 56: | Zeile 56: | ||
}} | }} | ||
Mitunter gibt es Dinge, die sich nicht so selbsterklärend aufschreiben lassen. | Mitunter gibt es Dinge, die sich nicht so selbsterklärend aufschreiben lassen. | ||
{{ | |||
In diesem Fall gelten einige Faustregeln: | |||
;Funktionen: erkläre, '''was''' eine Funktion tut, nicht '''wie''' sie es tut. | |||
:{{Beispiel|1= | |||
'''Gut:''' | |||
<syntaxhighlight lang="python" line> | |||
# Diese Funktion testet mittels Probedivision, ob die über- | |||
# gebene Zahl eine Primzahl ist, und gibt True oder False zurück | |||
def ist_primzahl(x): | |||
y = 2 | |||
while x >= sqrt(n): | |||
if x % y == 0: | |||
return False | |||
else: | |||
y = y + 1 + (y & 1) | |||
return True | |||
</syntaxhighlight> | |||
'''Schlecht:''' | |||
<syntaxhighlight lang="python" line> | |||
# Diese Funktion setzt eine Variable y auf 2 und zählt sie hoch bis √x | |||
# Wenn x % y == 0 ist, wird False zurückgegeben. Wenn y > √x ist, | |||
# wird True zurückgegeben. | |||
def ist_primzahl(x): | |||
y = 2 | |||
while x >= sqrt(n): | |||
if x % y == 0: | |||
return False | |||
else: | |||
y = y + 1 + (y & 1) | |||
return True | |||
</syntaxhighlight> | |||
}} | |||
;Einzelne [[Anweisung]]en: sollten nur dann kommentiert werden, wenn sie nicht intuitiv verständlich sind oder wenn ihr Sinn nicht unmittelbar einleuchtend ist. | |||
:{{Beispiel|1= | |||
'''Gut:''' | |||
<syntaxhighlight lang="python" line> | |||
def ist_primzahl(x): | |||
y = 2 | |||
while x >= sqrt(n): | |||
if x % y == 0: | |||
return False | |||
else: | |||
# erhöhe y um 1, falls y gerade, sonst um 2 | |||
# Grund: von den geraden Zahlen muss nur 2 | |||
# getestet werden, alle anderen geraden Zahlen | |||
# sind Vielfache von 2. Abgesehen von 2 müssen | |||
# nur ungerade Zahlen getestet werden. | |||
y = y + 1 + (y & 1) | |||
return True | |||
</syntaxhighlight> | |||
'''Schlecht:''' | |||
<syntaxhighlight lang="python" line> | |||
def ist_primzahl(x): | |||
y = 2 | |||
while x >= sqrt(n): | |||
if x % y == 0: | |||
# gib False zurück | |||
return False | |||
else: | |||
y = y + 1 + (y & 1) | |||
return True | |||
</syntaxhighlight> | |||
}} |
Aktuelle Version vom 27. Januar 2025, 07:18 Uhr
Kommentare dienen beim Programmieren dazu, den Zweck von Programmteilen zu beschreiben und schwer lesbaren Code verständlicher zu machen.
Kommentare schreibt man nicht für den Computer, damit der das Programm verarbeiten kann.
Kommentare schreibt man für sich selbst und alle anderen Menschen, die diesen Code jemals lesen und verstehen werden müssen.
Syntax
Sprache | Syntax |
---|---|
HTML | <!-- Kommentar,
darf beliebig
lang sein -->
|
Python | # Kommentar, einzeilig
# Längere Kommentare
# müssen in jeder Zeile
# mit # beginnen
|
Java JavaScript |
//Einzeiliger Kommentar
|
/* Mehrzeiliger
Kommentar */
| |
CSS |
Sinnvoller Einsatz
Grundsätzlich gilt: Ein gut geschriebenes Programm braucht keine Kommentare, weil allein aus den Namen von Variablen, Funktionen und Klassen genau hervorgeht, was das Programm tut.
Diese Funktion braucht beim besten Willen keinem Kommentar:
def addiere(summand1, summand2):
return summand1 + summand
Ihre Aufgabe ist so banal wie offensichtlich.
Mitunter gibt es Dinge, die sich nicht so selbsterklärend aufschreiben lassen.
In diesem Fall gelten einige Faustregeln:
- Funktionen
- erkläre, was eine Funktion tut, nicht wie sie es tut.
Gut:
# Diese Funktion testet mittels Probedivision, ob die über-
# gebene Zahl eine Primzahl ist, und gibt True oder False zurück
def ist_primzahl(x):
y = 2
while x >= sqrt(n):
if x % y == 0:
return False
else:
y = y + 1 + (y & 1)
return True
Schlecht:
# Diese Funktion setzt eine Variable y auf 2 und zählt sie hoch bis √x
# Wenn x % y == 0 ist, wird False zurückgegeben. Wenn y > √x ist,
# wird True zurückgegeben.
def ist_primzahl(x):
y = 2
while x >= sqrt(n):
if x % y == 0:
return False
else:
y = y + 1 + (y & 1)
return True
- Einzelne Anweisungen
- sollten nur dann kommentiert werden, wenn sie nicht intuitiv verständlich sind oder wenn ihr Sinn nicht unmittelbar einleuchtend ist.
Gut:
def ist_primzahl(x):
y = 2
while x >= sqrt(n):
if x % y == 0:
return False
else:
# erhöhe y um 1, falls y gerade, sonst um 2
# Grund: von den geraden Zahlen muss nur 2
# getestet werden, alle anderen geraden Zahlen
# sind Vielfache von 2. Abgesehen von 2 müssen
# nur ungerade Zahlen getestet werden.
y = y + 1 + (y & 1)
return True
Schlecht:
def ist_primzahl(x):
y = 2
while x >= sqrt(n):
if x % y == 0:
# gib False zurück
return False
else:
y = y + 1 + (y & 1)
return True